• /
  • EnglishEspañol日本語한국어Português
  • EntrarComeçar agora

Esta tradução de máquina é fornecida para sua comodidade.

Caso haja alguma divergência entre a versão em inglês e a traduzida, a versão em inglês prevalece. Acesse esta página para mais informações.

Criar um problema

Distributed tracing para seus serviços C

Distributed tracing permite que você veja toda a jornada de suas solicitações em sistemas distribuídos. O C SDK suporta distributed tracingpadrão com Amostragem baseado em head. Ele não oferece suporte ao recurso chamado Infinite Tracing ou W3C Trace Context.

O C SDK exige que você instrumente manualmente seus serviços C, ao contrário da instrumentação automática de outro agente New Relic. Isso significa que você precisa adicionar algumas linhas ao seu código para usar o C SDK e, em seguida, adicionar uma configuração adicional para ativar distributed tracing.

Veja como começar:

Dica

Se você quiser obter mais informações antes de começar, confira estes tópicos:

  • Como funciona a amostragem de extensão explica as opções distributed tracing .

  • Os impactos no APM informam o que esperar caso você seja um usuário

    atual, mas não tenha configurado distributed tracing.

Instrumentar um programa de exemplo (recomendado):

Esta é uma maneira rápida de ver como instalar o C SDK e utilizar um serviço com distributed tracingpadrão.

Antes de começar com as etapas principais:

  • Você precisará de uma conta New Relic para configurar distributed tracing. Se ainda não tiver uma, você pode criar rapidamente uma conta gratuita. Observe que este link o levará a outro site para concluir a inscrição, mas você pode retornar aqui e seguir as etapas de configuração abaixo.
  • Certifique-se de atender aos requisitos.

Passo 1. Identificar serviços

Descubra quais serviços atendem à sua solicitação para que você possa instrumentar cada um deles para enviar dados trace para o New Relic.

Passo 2. Instrumentar cada serviço com um agente APM

Temos um exemplo de como instalar o C SDK e utilizar um aplicativo de exemplo para que ele comece a reportar telemetria para o New Relic. Depois de entender como funciona, você poderá aplicar os princípios a cada um dos serviços C envolvidos em suas solicitações. Se alguns dos seus serviços utilizam outros idiomas, basta seguir as etapas de instalação para esses idiomas.

Antes de ir para o serviço de amostra abaixo, observe que será necessário criar um newrelic_app_config_t padrão, mas você também precisará adicionar distributed_tracing.enabled e defini-lo como true:

#include <stdlib.h>
#include <stdio.h>
#include <unistd.h>
/*
* A standalone example that demonstrates to users how to
* configure logging, configure an app, connect an app,
* start a transaction and a segment, and cleanly destroy
* everything.
*/
#include "libnewrelic.h"
int main(void) {
newrelic_app_t* app;
newrelic_txn_t* txn;
newrelic_app_config_t* config;
newrelic_segment_t* seg;
config = newrelic_create_app_config("<YOUR_APP_NAME>", "9931ae06b54780ab846c16fc602b5778ead3907f");
config->distributed_tracing.enabled = true;
...

Para experimentar o programa de exemplo, clique aqui.

Etapa 3. Ver rastreamento

Depois de instrumentar cada um de seus serviços com o agente APM, gere algum tráfego em sua aplicação para que possamos capturar algum rastro. Aqui estão algumas maneiras de visualizar seu rastreamento na interface:

Para obter mais ajuda para encontrar seu rastreamento na interface:

Instrumentar de transação e solicitações HTTP

Para transações que ocorrem em vários serviços, a carga útil distributed trace contém informações que permitem à New Relic juntá-las em um rastreamento de transação completo. No entanto, se os serviços do monitor New Relic não estiverem enviando contexto do trace entre si, isso resultará em detalhes trace incompletos. Para obter mais informações, consulte a documentação sobre como passar o cabeçalho da API distributed tracing e a documentação distributed tracing do C SDK no GitHub.

Se você quiser...

Usa isto

Criar e retornar uma carga para ser enviada ao serviço chamado

newrelic_create_distributed_trace_payload()

Aceitar uma carga enviada do primeiro serviço

Isso vinculará esses serviços em um trace.

Retornar uma representação de string JSON codificada em base64 da carga útil

Isso oferece o mesmo comportamento que newrelic_create_distributed_trace_payload().

Aceite uma string codificada em base64 para a carga útil

Isso oferece o mesmo comportamento que newrelic_accept_distributed_trace_payload().

Copyright © 2024 New Relic Inc.

This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.