Ingest synthetic JSON records into Azure Monitor custom tables or supported Microsoft standard tables by provisioning a writable Custom-* DCR input stream.
77%
Does it follow best practices?
Run evals on this skill
Adds up to 20 points to the overall score
Passed
No findings from the security scan
Fix and improve this skill with Tessl
tessl review fix ./.github/skills/azure-monitor-logs-ingestion/SKILL.mdUse Tools\AzureMonitorLogsIngestion when the user wants to load synthetic or
mock JSON records into a Log Analytics table.
Custom-* input stream for both custom and standard
destinations.Microsoft-* stream.InvalidStream and schema errors.Install and check authentication:
python -m pip install -e Tools\AzureMonitorLogsIngestion
azure-monitor-logs-ingestion doctorCreate a version 1 contract from the examples under
Tools\AzureMonitorLogsIngestion\examples.
Define the raw input columns and a transform that explicitly casts and
projects the destination columns. A public table schema does not reveal a
connector's internal parser or enrichment logic; the anonymous
/v1/metadata endpoint is schema
metadata, not ingestion capability or parser evidence. See the
Logs Ingestion API overview
and table feature matrix.
For a custom table, define the complete _CL destination schema.
For a standard table, confirm the table exists and specify its documented
Microsoft-* output stream and supported Logs Ingestion API route.
Structured records enter through the customer-authored Custom-* input
stream and transformKql; do not assume reserved or service-managed
destination columns are writable.
Custom-*
input stream, schema/transform, destination, and endpoint. A package
reference alone does not prove that the DCR exists or is compatible.
Otherwise use a separate contract-specific DCR route; the current tool
may provision an isolated DCE/DCR pair as part of that route. Never
change an existing connector DCR or add an input stream to it.Custom-* input stream.Validate without Azure writes:
azure-monitor-logs-ingestion inspect --contract <path> --payload <path>Provision and ingest:
azure-monitor-logs-ingestion run `
--contract <path> `
--payload <path> `
--report <report-path>If ingestion returns 403, assign Monitoring Metrics Publisher on the DCR
to the sending identity, or rerun provisioning with --principal-id for a
service principal or managed identity.
For post-ingestion query verification, prefer a suitable query tool advertised by the official Sentinel Triage MCP. If the MCP capability is unavailable or has a provider-level failure, verify through the CLI:
azure-monitor-logs-ingestion verify --contract <path>A genuine KQL or table error returned by the MCP is not a reason to retry through the CLI.
Report the destination table, record and batch counts, DCR/DCE resource IDs, immutable DCR ID, DCR row/drop/transform metrics when available, verification result, warnings, and the report path. An HTTP success confirms acceptance, not completion of downstream processing.
Azure/Azure-Sentinel
2985095
If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.