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

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

https://github.com/sickn33/agentic-awesome-skills/blob/main/plugins/agentic-awesome-skills-claude/skills/azure-monitor-ingestion-java/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-java/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 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-java

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-java/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 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).

repo: sickn33/agentic-awesome-skills

Popularidade

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

Essa skill é útil?

0

Entre para votar.

Comentários

  • …

Mais skills deste repositório

Skills parecidas