• 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

Alternativa C SDK OpenTelemetry

OpenTelemetry C++ é uma solução de observabilidade interessante com funcionalidade estável e uma ampla base de colaboradores em uma base de código ativa. O New Relic é compatível com OpenTelemetry e com os benefícios que ele pode oferecer, como código à prova de futuro, colocando chamadas de instrumentação agnósticas de endpoint em vez de aderir a formatos específicos do fornecedor.

Consulte a configuração do New Relic OpenTelemetry para obter instruções detalhadas sobre como usar o OpenTelemetry para trabalhar com a linguagem de sua escolha para enviar dados para o New Relic.

O repositório OpenTelemetry C++ tem muitos bons exemplos no GitHub. Consulte seu CONTRIBUTING.md para obter mais instruções sobre como criar e usar o OpenTelemetry C++ SDK, bem como criar e executar os exemplos.

Exemplo de início rápido

Quer começar agora mesmo e ver o que o New Relic pode fazer sem precisar instrumentar seu código? Siga as etapas abaixo para ver um exemplo que fará com que você envie dados para o New Relic rapidamente.

Quando estiver pronto para iniciar o instrumentado, consulte as instruções de configuração do New Relic OpenTelemetry e o repositório OpenTelemetry C++ CONTRIBUTING.md para obter mais detalhes sobre a integração com seu código.

1. Configure seu ambiente

Certifique-se de ter os pré-requisitos descritos na documentação do New Relic OpenTelemetry.

  1. Execute git clone https://github.com/open-telemetry/opentelemetry-cpp.
  2. Copie os arquivos de exemplo Dockerfile.ubuntu, docker-compose-collector.yaml e config.dev.yaml para a raiz do diretório clonado na etapa 1.
  3. Edite config.dev.yaml com sua chave de licença e endpoint.
  4. Execute docker-compose -f docker-compose-collector.yaml up.
  5. Verifique se os dois contêineres estão rodando, um para o coletor e outro para a aplicação C++.

2. Execute o aplicativo C++

Abra um terminal no contêiner C++ e execute os seguintes comandos:

  1. cd /usr/src/myapp

  2. mkdir build

  3. cd build

  4. rm -rf *

    bash
    $
    cmake -DCMAKE_BUILD_TYPE=Debug \
    >
    -DWITH_METRICS_PREVIEW=ON \
    >
    -DWITH_LOGS_PREVIEW=ON \
    >
    -DCMAKE_CXX_FLAGS="-Wno-error=deprecated-declarations" \
    >
    -DWITH_OTLP=ON \
    >
    ..
  5. cd examples

  6. make

  7. cd otlp

  8. ./example_otlp_http

3. Visualize seus dados

Verifique se os dados chegaram consultando os dados da sua conta New Relic:

  1. Para ver os dados do período: Vá para one.newrelic.com > All capabilities > Query your data e insira esta consulta:

    FROM Span SELECT * where telemetry.sdk.name = 'opentelemetry'
  2. Visualize o serviço OpenTelemetry procurando por unknown_service para obter mais detalhes.

Arquivos de amostra

docker-compose-collector.yaml

version: '3.7'
services:
cpp:
build:
context: .
dockerfile: Dockerfile.ubuntu
stdin_open: true
environment:
- OTEL_EXPORTER_OTLP_ENDPOINT=otel-collector:4318
volumes:
- ./:/usr/src/myapp
otel-collector:
image: otel/opentelemetry-collector-contrib
stdin_open: true
command: ["--config=/etc/otel-collector-config.yml"]
volumes:
- ./config.dev.yaml:/etc/otel-collector-config.yml
ports:
- "1888:1888" # pprof extension
- "8888:8888" # Prometheus metrics exposed by the collector
- "8889:8889" # Prometheus exporter metrics
- "13133:13133" # health_check extension
- "9411" # Zipkin receiver
- "4317:4317" # OTLP gRPC receiver
- "4318:4318" # OTLP http receiver
- "55680:55679" # zpages extension
depends_on:
- cpp

Dockerfile.ubuntu

FROM ubuntu:20.04
ENV DEBIAN_FRONTEND noninteractive
## Update cache and upgrade image
RUN apt-get -y update && apt-get -y upgrade && apt-get -y dist-upgrade
## Build environment packages
RUN apt-get install -qq -y --ignore-missing \
apt-utils \
automake \
bc \
build-essential \
bzip2 \
cmake \
curl \
git \
libcurl4-openssl-dev \
libssl-dev \
libtool-bin \
make \
pkg-config \
protobuf-compiler \
libprotobuf-dev \
python \
sudo \
tar \
zip \
unzip \
wget \
zlib1g-dev
WORKDIR /setup-tools
ADD ci/setup_ci_environment.sh /setup-tools
ADD ci/setup_cmake.sh /setup-tools
ADD ci/install_protobuf.sh /setup-tools
RUN /setup-tools/setup_ci_environment.sh \
&& /setup-tools/setup_cmake.sh \
&& /setup-tools/install_protobuf.sh
WORKDIR /usr/src/myapp
# ENTRYPOINT bash
CMD /bin/bash

config.dev.yaml

exporters:
newrelic:
apikey: 'EDIT_TO_ADD_YOUR_KEY_HERE'
timeout: 30s
host_override: "otlp.nr-data.net"
logging:
loglevel: DEBUG
receivers:
otlp:
protocols:
grpc:
endpoint: 0.0.0.0:4317
http:
endpoint: 0.0.0.0:4318
cors:
allowed_origins:
- '*'
service:
pipelines:
traces:
receivers:
- otlp
exporters:
- logging
- newrelic
logs:
receivers:
- otlp
exporters:
- logging
Copyright © 2024 New Relic Inc.

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