Todos los productos
Search
Centro de documentos

Application Real-Time Monitoring Service:Reporte de datos de aplicaciones Rust con SkyWalking

Última actualización: Sep 05, 2026

Una vez que instrumenta su aplicación con el agente de Rust para SkyWalking y reporta los datos de rastreo a Managed Service for OpenTelemetry, Managed Service for OpenTelemetry comienza a monitorear la aplicación. Puede consultar métricas clave, como la topología de la aplicación, trazas, transacciones lentas o con errores, y análisis de SQL.

Requisitos previos

  • Protobuf está instalado.

    macOS

    brew install protobuf

    Debian

    sudo apt install protobuf-compiler
  • Obtención de un endpoint

    1. Inicie sesión en la consola de ARMS. En el panel de navegación izquierdo, haga clic en Integration Center.

    2. En la página Integration Center, haga clic en la tarjeta SkyWalking dentro de la sección Server-side Applications.

    3. En el panel SkyWalking, haga clic en la pestaña Start Integration y seleccione la región donde desea reportar los datos.

      Nota

      Los recursos se inicializan automáticamente la primera vez que accede a una región.

    4. Configure el parámetro Connection Type y copie un endpoint.

      Si su servicio está desplegado en Alibaba Cloud y reside en la región seleccionada, se recomienda establecer este parámetro en Alibaba Cloud VPC Network. De lo contrario, establézcalo en Public Network.

      image.png

Contexto

SkyWalking es una herramienta popular de código abierto para el monitoreo del rendimiento de aplicaciones (APM), diseñada para microservices, entornos nativos de la nube y aplicaciones en contenedores (como Docker, Kubernetes y Mesos). En esencia, SkyWalking funciona como un sistema de rastreo distribuido.

El crate skywalking-rust es la biblioteca oficial del agente de Rust para SkyWalking. Puede integrarlo para monitorear aplicaciones escritas en Rust. Actualmente, skywalking-rust ofrece una instrumentación automática limitada, por lo que requiere instrumentación manual.

Demostración

Repositorio de demostración: Demostración de SkyWalking

Esta demostración incluye un servidor HTTP sencillo basado en el framework hyper para Rust. Utiliza instrumentación manual con skywalking-rust para reportar datos a la consola de Managed Service for OpenTelemetry.

Instrumentación manual de una aplicación Rust

  1. Agregue la dependencia de SkyWalking a su proyecto de Rust.

    Nota

    Este tema utiliza SkyWalking 0.8.0 como ejemplo.

    cargo.toml

    # Add the following line under [dependencies]
    skywalking = { version = "0.8.0", features = ["vendored"] }

    cargo add

    cargo add skywalking --features vendored
  2. Importe los módulos de SkyWalking en su código fuente.

    # Import modules in the source code that requires instrumentation.
    use skywalking::{reporter::grpc::GrpcReporter, trace::tracer::Tracer};
  3. Realice la instrumentación manual.

    // Use entry span, local span, and exit span to manually instrument a trace.
    // These three span types enable complete end-to-end tracing.
    //
    // entry span: Used on the server side to extract the tracing context from an incoming HTTP request.
    // local span: Used for instrumenting operations within the same process.
    // exit span: Used on the client side to inject the tracing context into an outgoing HTTP request.
    //
    // For cross-process traces, refer to the following example:
    //
    // client.rs:
    let mut ctx = tracer.create_trace_context();
    {
        // do something...
        let span = ctx.create_exit_span("operation1", "remote_peer");
    }
    
    // server.rs:
    let mut ctx = tracer.create_trace_context();
    {
        let span = ctx.create_entry_span("operation1");
        // do something...
    }
  4. Configure el endpoint y el token.

    Obtenga la dirección del endpoint y el token de autenticación en la sección Prerequisites.

    // Replace  with the endpoint address,  with the authentication token,
    // and  with your application name.
    let endpoint = "<endpoint>";
    let token = "<token>";
    let service_name = "<service_name>";
    let instance_name = "<instance_name>";
    
    let reporter = GrpcReporter::connect(endpoint).await?;
    let reporter = reporter.with_authentication(token);
    let tracer = Tracer::new(service_name, instance_name, reporter.clone());
  5. Reinicie su aplicación.

Preguntas frecuentes

La compilación de mi proyecto de Rust falla con el siguiente error:

   Compiling tokio-io v0.1.13
   Compiling hyper v0.14.27
error: failed to run custom build command for `skywalking v0.8.0`
Caused by:
  process didn't exit successfully: `/Users/whlongxi/work/test/skywalking-test-demo/skywalking-rust-demo/target/debug/build/skywalking-12f2124cc5c4c6c4/build-script-build` (exit status:
101)
  --- stdout
  cargo:rerun-if-changed=./skywalking-data-collect-protocol/language-agent/Meter.proto
  cargo:rerun-if-changed=./skywalking-data-collect-protocol/language-agent/Tracing.proto
  cargo:rerun-if-changed=./skywalking-data-collect-protocol/logging/Logging.proto
  cargo:rerun-if-changed=./skywalking-data-collect-protocol/management/Management.proto
  cargo:rerun-if-changed=./skywalking-data-collect-protocol
  --- stderr
  thread 'main' panicked at 'Could not find `protoc` installation and this build crate cannot proceed without
      this knowledge. If `protoc` is installed and this crate had trouble finding
      it, you can set the `PROTOC` environment variable with the specific path to your
      installed `protoc` binary.You could try running `brew install protobuf` or downloading it from https://github.com/protocolbuffers/protobuf/releases

Este error indica que falta el compilador protoc. Para solucionarlo, instale protobuf tal como se describe en la sección Prerequisites.

Artículos relacionados

Sitio web oficial de Apache SkyWalking