We're using a custom table in Log Analytics for application error logging. The setup is: Serilog -> Azure Analytics Sink -> Data Collector API (used in sink) -> Log Analytics Workspace -> Custom Table. There seems to be a secret I'm missing in setting up the custom tables. I have two tables working beautifully. We're not seeing entries in all subsequent tables we've created, even though the API calls are successful. It's like our entries are getting lost after ingestion.
Here's how we're creating the tables:
Create a new custom table in the Tables section of Log Analytics Workspace. It must be DCR-based
Create a Data Collection Rule for the table. I'm not sure it is used either but is required.
Step 2 of wizard. Copied schema directly from a working custom table.
Edit table modal, after custom table is created
Schema modal. These two screens are the only configuration options once table is created
Here's the answer for anyone who finds this in the future: Don't create the custom table yourself.
When you specify a non-existent table in the Data Collector API, Azure will create the table for you. You'll have no trouble writing to the table when Azure creates it.
It's a simple as that!