Pular para o conteúdo
Skillpedia
Coleta de dados (scraping)48 mil · #2350

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

https://github.com/sickn33/agentic-awesome-skills/blob/main/plugins/agentic-awesome-skills-claude/skills/azure-monitor-ingestion-py/SKILL.md

Mensagem pronta para colar

Use esta skill para me ajudar: https://github.com/sickn33/agentic-awesome-skills/blob/main/plugins/agentic-awesome-skills-claude/skills/azure-monitor-ingestion-py/SKILL.md Leia o arquivo SKILL.md desse link e siga as instruções dele na minha tarefa.
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-py

Ou 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.md
Conteú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:

  1. Workspace do Log Analytics — Destino para seus logs
  2. Ponto de Extremidade de Coleta de Dados (DCE) — Ponto de extremidade de ingestão
  3. Regra de Coleta de Dados (DCR) — Define o esquema e o destino
  4. 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.

repo: sickn33/agentic-awesome-skills

Popularidade

Estrelas no GitHub
48 mil
Posição no ranking
#2350
Licença
MIT
Atualizada em
15/10/2026

Essa skill é útil?

0

Entre para votar.

Comentários

  • …

Mais skills deste repositório

Skills parecidas