azure-monitor-ingestion-java
Permite ao agente enviar logs personalizados para o Azure Monitor usando Java. Facilita a coleta de dados para análise.
O que ela faz
Este programa ajuda você a enviar registros personalizados (mensagens de eventos e erros) para o Azure Monitor. Ele permite que você organize e armazene esses registros em um local centralizado para análise posterior.
Quando usar
- ✓Quando seu aplicativo gera mensagens importantes que você quer guardar.
- ✓Para registrar erros que acontecem no seu programa.
- ✓Para monitorar o desempenho e o comportamento do seu aplicativo.
Exemplo do que pedir para a IA
“Envie os logs do meu aplicativo 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 informações sobre onde enviar os logs (endpoint) e como eles devem ser organizados (regra de coleta). Depois, você envia os registros que deseja salvar.
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-javaOu baixe só o arquivo:
curl -L https://raw.githubusercontent.com/sickn33/agentic-awesome-skills/main/plugins/agentic-awesome-skills-claude/skills/azure-monitor-ingestion-java/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 Java
Biblioteca cliente para enviar logs personalizados ao Azure Monitor usando a API de Ingestão de Logs via Regras de Coleta de Dados.
Instalação
<dependency>
<groupId>com.azure</groupId>
<artifactId>azure-monitor-ingestion</artifactId>
<version>1.2.11</version>
</dependency>
Ou use o BOM do Azure SDK:
<dependencyManagement>
<dependencies>
<dependency>
<groupId>com.azure</groupId>
<artifactId>azure-sdk-bom</artifactId>
<version>{bom_version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
<dependencies>
<dependency>
<groupId>com.azure</groupId>
<artifactId>azure-monitor-ingestion</artifactId>
</dependency>
</dependencies>
Pré-requisitos
- Ponto de Extremidade de Coleta de Dados (DCE)
- Regra de Coleta de Dados (DCR)
- Workspace do Log Analytics
- Tabela de destino (personalizada ou integrada: CommonSecurityLog, SecurityEvents, Syslog, WindowsEvents)
Variáveis de Ambiente
DATA_COLLECTION_ENDPOINT=https://<dce-name>.<region>.ingest.monitor.azure.com
DATA_COLLECTION_RULE_ID=dcr-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
STREAM_NAME=Custom-MyTable_CL
Criação do Cliente
Cliente Síncrono
import com.azure.identity.DefaultAzureCredential;
import com.azure.identity.DefaultAzureCredentialBuilder;
import com.azure.monitor.ingestion.LogsIngestionClient;
import com.azure.monitor.ingestion.LogsIngestionClientBuilder;
DefaultAzureCredential credential = new DefaultAzureCredentialBuilder().build();
LogsIngestionClient client = new LogsIngestionClientBuilder()
.endpoint("<data-collection-endpoint>")
.credential(credential)
.buildClient();
Cliente Assíncrono
import com.azure.monitor.ingestion.LogsIngestionAsyncClient;
LogsIngestionAsyncClient asyncClient = new LogsIngestionClientBuilder()
.endpoint("<data-collection-endpoint>")
.credential(new DefaultAzureCredentialBuilder().build())
.buildAsyncClient();
Conceitos Chave
| Conceito | Descrição |
|---|---|
| Ponto de Extremidade de Coleta de Dados (DCE) | URL do ponto de extremidade de ingestão para sua região |
| Regra de Coleta de Dados (DCR) | Define a transformação e o roteamento de dados para tabelas |
| Nome do Fluxo | Fluxo de destino na DCR (por exemplo, Custom-MyTable_CL) |
| Workspace do Log Analytics | Destino para logs ingeridos |
Operações Principais
Upload de Logs Personalizados
import java.util.List;
import java.util.ArrayList;
List<Object> logs = new ArrayList<>();
logs.add(new MyLogEntry("2024-01-15T10:30:00Z", "INFO", "Application started"));
logs.add(new MyLogEntry("2024-01-15T10:30:05Z", "DEBUG", "Processing request"));
client.upload("<data-collection-rule-id>", "<stream-name>", logs);
System.out.println("Logs uploaded successfully");
Upload com Concorrência
Para grandes coleções de logs, habilite uploads concorrentes:
import com.azure.monitor.ingestion.models.LogsUploadOptions;
import com.azure.core.util.Context;
List<Object> logs = getLargeLogs(); // Large collection
LogsUploadOptions options = new LogsUploadOptions()
.setMaxConcurrency(3);
client.upload("<data-collection-rule-id>", "<stream-name>", logs, options, Context.NONE);
Upload com Tratamento de Erros
Trate falhas parciais de upload de forma graciosa:
LogsUploadOptions options = new LogsUploadOptions()
.setLogsUploadErrorConsumer(uploadError -> {
System.err.println("Upload error: " + uploadError.getResponseException().getMessage());
System.err.println("Failed logs count: " + uploadError.getFailedLogs().size());
// Option 1: Log and continue
// Option 2: Throw to abort remaining uploads
// throw uploadError.getResponseException();
});
client.upload("<data-collection-rule-id>", "<stream-name>", logs, options, Context.NONE);
Upload Assíncrono com Reactor
import reactor.core.publisher.Mono;
List<Object> logs = getLogs();
asyncClient.upload("<data-collection-rule-id>", "<stream-name>", logs)
.doOnSuccess(v -> System.out.println("Upload completed"))
.doOnError(e -> System.err.println("Upload failed: " + e.getMessage()))
.subscribe();
Exemplo de Modelo de Entrada de Log
public class MyLogEntry {
private String timeGenerated;
private String level;
private String message;
public MyLogEntry(String timeGenerated, String level, String message) {
…
Perguntas frequentes
O que são logs?
Logs são mensagens que um programa gera para registrar o que está acontecendo, como eventos, erros ou informações de funcionamento.
O que é Azure Monitor?
Azure Monitor é um serviço da Microsoft que ajuda a coletar, analisar e agir sobre dados de telemetria dos seus aplicativos e ambiente.
Preciso saber programar para usar isso?
Sim, este é um kit de desenvolvimento de software (SDK) para programadores usarem em seus códigos.
Detalhes
Descrição original do autor
Azure Monitor Ingestion SDK for Java. Send custom logs to Azure Monitor via Data Collection Rules (DCR) and Data Collection Endpoints (DCE).
Popularidade
- Estrelas no GitHub
- 48 mil
- Posição no ranking
- #2349
- 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