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

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

In the event of any inconsistency between the English version and the translated version, the English versionwill take priority. Please visit this page for more information.

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 construir e usar o OpenTelemetry C++ SDK, bem como construir 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.