• EnglishEspañol日本語한국어Português
  • Inicia sesiónComenzar ahora

Te ofrecemos esta traducción automática para facilitar la lectura.

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.

Crea una propuesta

Alternativa a OpenTelemetry del SDK de C

OpenTelemetry C++ es una interesante solución de observabilidad con funcionalidad estable y una amplia base de contribuyentes en una base de código activa. New Relic es compatible con OpenTelemetry y los beneficios que puede proporcionar, como código preparado para el futuro al realizar llamadas de instrumentación independientes del punto final en lugar de adherirse a formatos específicos del proveedor.

Consulte la configuración de New Relic OpenTelemetry para obtener instrucciones detalladas sobre cómo usar OpenTelemetry para trabajar con el idioma de su elección para enviar datos a New Relic.

El repositorio OpenTelemetry C++ tiene muchos buenos ejemplos en GitHub. Consulte CONTRIBUTING.md para obtener más instrucciones sobre cómo crear y utilizar el SDK de OpenTelemetry C++, así como sobre cómo crear y ejecutar los ejemplos.

Ejemplo de inicio rápido

¿Quiere comenzar de inmediato y ver qué puede hacer New Relic sin tener que modificar su código? Siga los pasos a continuación para ver un ejemplo que le permitirá enviar datos a New Relic en poco tiempo.

Cuando esté listo para comenzar a instrumentar, consulte las instrucciones de configuración de New Relic OpenTelemetry y el repositorio de OpenTelemetry C++ CONTRIBUTING.md para obtener más detalles sobre la integración con su código.

1. Configura tu entorno

Asegúrese de tener los requisitos previos descritos en la documentación de New Relic OpenTelemetry.

  1. Ejecute git clone https://github.com/open-telemetry/opentelemetry-cpp.
  2. Copie los archivos de ejemplo Dockerfile.ubuntu, docker-compose-collector.yaml y config.dev.yaml en la raíz del directorio clonado en el paso 1.
  3. Edite config.dev.yaml con su clave de licencia y extremo.
  4. Ejecute docker-compose -f docker-compose-collector.yaml up.
  5. Verifique que los dos contenedores se estén ejecutando, uno para el recolector y otro para la aplicación C++.

2. Ejecute la aplicación C++

Abra una terminal en el contenedor C++ y ejecute los siguientes 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. Ver tus datos

Verifique que los datos hayan llegado consultando los datos de su cuenta New Relic:

  1. Para ver datos de intervalo: vaya a one.newrelic.com > All capabilities > Query your data e ingrese esta consulta:

    FROM Span SELECT * where telemetry.sdk.name = 'opentelemetry'
  2. Vea el servicio OpenTelemetry buscando unknown_service para obtener más detalles.

Archivos de muestra

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.