azure-monitor-ingestion-py
Faz seu agente enviar logs customizados para o Azure Monitor com Python. Ajuda a coletar dados importantes para análise.
O que ela faz
Este programa envia informações personalizadas (logs) para o Azure Monitor, um serviço que armazena e analisa dados de sistemas. Ele permite que você envie dados de diferentes fontes para análise centralizada.
Quando usar
- ✓Quando você precisa registrar eventos específicos de um aplicativo.
- ✓Para enviar dados de sensores ou dispositivos para análise.
- ✓Ao migrar logs de sistemas antigos para uma solução centralizada.
Exemplo do que pedir para a IA
“Envie os logs de erro do meu aplicativo web para o Azure Monitor.”
Quer saber mais? Abra as seções abaixo.
Como usar
O jeito mais fácil: copie a mensagem abaixo e cole no Claude, ChatGPT, Cursor ou outra IA. Ela lê a skill e segue as instruções.
Link da skill
Mensagem pronta para colar
Como funciona
Você configura o programa com os detalhes de onde enviar os logs (endpoint) e como eles devem ser organizados (regra de coleta). Depois, você pode enviar os logs em formato de texto ou arquivo.
Instalação
Jeito mais fácil: copie o link da skill e cole no Claude, ChatGPT ou Cursor pedindo para seguir as instruções.
No terminal (Claude Code, Codex, Cursor), na pasta do projeto:
npx skills add sickn33/agentic-awesome-skills --skill azure-monitor-ingestion-pyOu baixe só o arquivo:
curl -L https://raw.githubusercontent.com/sickn33/agentic-awesome-skills/main/plugins/agentic-awesome-skills-claude/skills/azure-monitor-ingestion-py/SKILL.md -o SKILL.mdConteúdo técnico (SKILL.md)
Tradução do texto original do autor no GitHub. Os comandos e códigos estão como no original.
SDK de Ingestão do Azure Monitor para Python
Envie logs personalizados para um workspace do Azure Monitor Log Analytics usando a API de Ingestão de Logs.
Instalação
pip install azure-monitor-ingestion
pip install azure-identity
Variáveis de Ambiente
# Data Collection Endpoint (DCE)
AZURE_DCE_ENDPOINT=https://<dce-name>.<region>.ingest.monitor.azure.com
# Data Collection Rule (DCR) immutable ID
AZURE_DCR_RULE_ID=dcr-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
# Stream name from DCR
AZURE_DCR_STREAM_NAME=Custom-MyTable_CL
Pré-requisitos
Antes de usar este SDK, você precisa de:
- Workspace do Log Analytics — Destino para seus logs
- Ponto de Extremidade de Coleta de Dados (DCE) — Ponto de extremidade de ingestão
- Regra de Coleta de Dados (DCR) — Define o esquema e o destino
- Tabela Personalizada — No Log Analytics (criada via DCR ou manualmente)
Autenticação
from azure.monitor.ingestion import LogsIngestionClient
from azure.identity import DefaultAzureCredential
import os
client = LogsIngestionClient(
endpoint=os.environ["AZURE_DCE_ENDPOINT"],
credential=DefaultAzureCredential()
)
Enviar Logs Personalizados
from azure.monitor.ingestion import LogsIngestionClient
from azure.identity import DefaultAzureCredential
import os
client = LogsIngestionClient(
endpoint=os.environ["AZURE_DCE_ENDPOINT"],
credential=DefaultAzureCredential()
)
rule_id = os.environ["AZURE_DCR_RULE_ID"]
stream_name = os.environ["AZURE_DCR_STREAM_NAME"]
logs = [
{"TimeGenerated": "2024-01-15T10:00:00Z", "Computer": "server1", "Message": "Application started"},
{"TimeGenerated": "2024-01-15T10:01:00Z", "Computer": "server1", "Message": "Processing request"},
{"TimeGenerated": "2024-01-15T10:02:00Z", "Computer": "server2", "Message": "Connection established"}
]
client.upload(rule_id=rule_id, stream_name=stream_name, logs=logs)
Enviar de Arquivo JSON
import json
with open("logs.json", "r") as f:
logs = json.load(f)
client.upload(rule_id=rule_id, stream_name=stream_name, logs=logs)
Tratamento de Erros Personalizado
Trate falhas parciais com um callback:
failed_logs = []
def on_error(error):
print(f"Upload failed: {error.error}")
failed_logs.extend(error.failed_logs)
client.upload(
rule_id=rule_id,
stream_name=stream_name,
logs=logs,
on_error=on_error
)
# Retry failed logs
if failed_logs:
print(f"Retrying {len(failed_logs)} failed logs...")
client.upload(rule_id=rule_id, stream_name=stream_name, logs=failed_logs)
Ignorar Erros
def ignore_errors(error):
pass # Silently ignore upload failures
client.upload(
rule_id=rule_id,
stream_name=stream_name,
logs=logs,
on_error=ignore_errors
)
Cliente Assíncrono
import asyncio
from azure.monitor.ingestion.aio import LogsIngestionClient
from azure.identity.aio import DefaultAzureCredential
async def upload_logs():
async with LogsIngestionClient(
endpoint=endpoint,
credential=DefaultAzureCredential()
) as client:
await client.upload(
rule_id=rule_id,
stream_name=stream_name,
logs=logs
)
asyncio.run(upload_logs())
Nuvens Soberanas
from azure.identity import AzureAuthorityHosts, DefaultAzureCredential
from azure.monitor.ingestion import LogsIngestionClient
# Azure Government
credential = DefaultAzureCredential(authority=AzureAuthorityHosts.AZURE_GOVERNMENT)
client = LogsIngestionClient(
endpoint="https://example.ingest.monitor.azure.us",
credential=credential,
credential_scopes=["https://monitor.azure.us/.default"]
)
Comportamento de Agrupamento
O SDK automaticamente:
- Divide os logs em blocos de 1 MB ou menos
- Comprime cada bloco com gzip
- Envia os blocos em paralelo
Não é necessário agrupamento manual para grandes conjuntos de logs.
Tipos de Cliente
| Cliente | Propósito |
|---|---|
LogsIngestionClient |
Cliente síncrono para envio de logs |
LogsIngestionClient (aio) |
Cliente assíncrono para envio de logs |
Conceitos Chave
| Conceito | Descrição |
|---|---|
| DCE | Ponto de Extremidade de Coleta de Dados — URL de ingestão |
| DCR | Regra de Coleta de Dados — define esquema, transformações, destino |
| Stream | Fluxo de dados nomeado dentro de um DCR |
| Tabela Personalizada | Tabela de destino no Log Analytics (termina com _CL) |
Formato do Nome do Stream do DCR
Os nomes dos streams seguem padrões:
Custom-<TableName>_CL— Para tabelas personalizadas
…
Perguntas frequentes
O que são logs?
Logs são registros de eventos que acontecem em um sistema ou aplicativo, como erros, atividades de usuários ou status de operação.
O que é Azure Monitor?
É um serviço da Microsoft que coleta, analisa e age sobre a telemetria de seus ambientes de nuvem e local. Ele ajuda a entender o desempenho e a disponibilidade dos seus sistemas.
Preciso saber programar para usar isso?
Este programa é uma ferramenta para desenvolvedores. Embora ele simplifique o envio de logs, a configuração inicial e o uso exigem algum conhecimento técnico.
Detalhes
Descrição original do autor
Azure Monitor Ingestion SDK for Python. Use for sending custom logs to Log Analytics workspace via Logs Ingestion API.
Popularidade
- Estrelas no GitHub
- 48 mil
- Posição no ranking
- #2350
- Licença
- MIT
- Atualizada em
- 15/10/2026
Comentários
- …
Mais skills deste repositório
00-andruia-consultant
Ajuda seu agente a iniciar ou melhorar projetos de IA. Ele analisa código, sugere ferramentas e cria planos de ação em espanhol.
sickn33/agentic-awesome-skills
007
Faz seu agente realizar auditorias de segurança e modelagem de ameaças. É útil para proteger projetos contra ataques e vulnerabilidades.
sickn33/agentic-awesome-skills
10-andruia-skill-smith
Ajuda seu agente a criar ou melhorar ferramentas de IA. Ele define como as ferramentas funcionam, escreve a documentação e valida a estrutura.
sickn33/agentic-awesome-skills
20-andruia-niche-intelligence
Faz seu agente criar um resumo sobre um setor específico. É útil para entender o contexto, regras, padrões de uso e riscos de um projeto, usando fontes confiáveis.
sickn33/agentic-awesome-skills
Skills parecidas
data-scraper-agent
Ajuda seu agente a coletar dados automaticamente de qualquer fonte pública. Ele pode ser agendado, enriquecer informações e salvar os resultados. É útil para monitorar ou rastrear dados online.
affaan-m/ECC
Apify Automation
Faz seu agente coletar dados da web de forma automática usando a plataforma Apify. Ele pode executar tarefas de raspagem e extrair informações.
ComposioHQ/awesome-claude-skills
Firecrawl Automation
Ajuda seu agente a extrair dados da web. Ele pode raspar páginas, rastrear sites e organizar informações.
ComposioHQ/awesome-claude-skills