Todos os produtos
Search
Central de documentação

Application Real-Time Monitoring Service:Relatar dados de aplicativos .NET com SkyWalking

Última atualização: Jul 05, 2026

Após instrumentar um aplicativo com o SkyWalking e relatar os dados de rastreamento para o Managed Service for OpenTelemetry, o serviço passa a monitorar o aplicativo. Você pode visualizar diversos dados de monitoramento, como topologia do aplicativo, rastros de chamadas, transações com exceção, transações lentas e análise de SQL. Este tópico descreve como usar o SDK do SkyWalking .NET Core para instrumentar um aplicativo e relatar seus dados.

Pré-requisitos

Obter um endpoint

New console

  1. Faça logon no console do Managed Service for OpenTelemetry. No painel de navegação à esquerda, clique em Integration Center.

  2. Na página Integration Center, clique no cartão SkyWalking na seção Open Source Frameworks.

  3. No painel SkyWalking, clique na aba Start Integration e selecione a região para relatório de dados.

    Nota

    Os recursos são inicializados automaticamente ao acessar uma região pela primeira vez.

  4. Configure o parâmetro Connection Type e copie um endpoint.

    Se o serviço estiver implantado na Alibaba Cloud e residir na região selecionada, defina este parâmetro como Alibaba Cloud VPC Network. Caso contrário, defina-o como Public Network.

    image.png

Old console

  1. Faça logon no console do Managed Service for OpenTelemetry.

  2. No painel de navegação à esquerda, clique em Cluster Configurations. Na página exibida, clique na aba Access point information.

  3. Na barra de navegação superior, selecione a região para relatório de dados. Na seção Cluster Information, ative Show Token.

  4. Defina o parâmetro Client como SkyWalking.

    Na coluna Related Information da tabela, copie um endpoint.

    Informações do ponto de acesso do SkyWalking

    Nota

    Use um endpoint de VPC se o aplicativo estiver implantado em um ambiente de produção da Alibaba Cloud. Caso contrário, use um endpoint público.

Obter um endpoint

  1. Faça logon no console do ARMS. No painel de navegação à esquerda, clique em Integration Center.

  2. Na página Integration Center, clique no cartão SkyWalking na seção Server-side Applications.

  3. No painel SkyWalking, clique na aba Start Integration e selecione a região para relatório de dados.

    Nota

    Os recursos são inicializados automaticamente ao acessar uma região pela primeira vez.

  4. Configure o parâmetro Connection Type e copie um endpoint.

    Se o serviço estiver implantado na Alibaba Cloud e residir na região selecionada, defina este parâmetro como Alibaba Cloud VPC Network. Caso contrário, defina-o como Public Network.

    image.png

Contexto

O SkyWalking é uma ferramenta de monitoramento de desempenho de aplicativos (APM) de código aberto para microsserviços e arquiteturas nativas da nuvem ou baseadas em contêineres, como docker, Kubernetes e Mesos. Essencialmente, o SkyWalking funciona como um sistema de rastreamento distribuído.

Exemplo de demonstração

Para obter um exemplo funcional completo, consulte o repositório SkyWalking Demo.

Instrumentar um aplicativo .NET com SkyWalking

  1. Instale o agente .NET.

    Acesse o diretório raiz do projeto e execute os comandos a seguir.

    # Install the .NET Agent
    dotnet add package SkyAPM.Agent.AspNetCore
    # Add environment variables
    export ASPNETCORE_HOSTINGSTARTUPASSEMBLIES=SkyAPM.Agent.AspNetCore
    export SKYWALKING__SERVICENAME=<service-name>
  2. Configure as propriedades do agente .NET.

    Crie um arquivo skyapm.json por meio de um dos métodos abaixo.

    • Método 1: Gere o arquivo de configuração de propriedades com a ferramenta SkyAPM.DotNet.CLI.

    • dotnet tool install -g SkyAPM.DotNet.CLI
      # Set the environment variable. Replace /path/to with the path to your .dotnet/tools directory.
      export PATH="$PATH:/path/to/.dotnet/tools/"             
      dotnet skyapm config <service-name> <endpoint>
    • Método 2: Crie um arquivo skyapm.json no diretório raiz do projeto e copie o conteúdo a seguir para ele.

    • {
        "SkyWalking": {
          "ServiceName": <service-name>,
          "Namespace": "",
          "HeaderVersions": [
            "sw8"
          ],
          "Sampling": {
            "SamplePer3Secs": -1,            
            "Percentage": -1.0,
            "LogSqlParameterValue": false
          },
          "Logging": {
            "Level": "Information",
            "FilePath": "logs/skyapm-{Date}.log"
          },
          "Transport": {
            "Interval": 3000,
            "ProtocolVersion": "v8",
            "QueueSize": 30000,
            "BatchSize": 3000,
            "gRPC": {
              "Servers": <endpoint>,
              "Authentication": <token>,
              "Timeout": 100000,
              "ConnectTimeout": 100000,
              "ReportTimeout": 600000
            }
          }
        }
      }

    Parâmetros

    • Parâmetros obrigatórios

      • <service-name>: Nome do serviço.

      • <endpoint>: Endpoint obtido na seção "Pré-requisitos".

      • <token>: Token de autenticação do endpoint. Obtenha-o conforme descrito na seção "Pré-requisitos".

    • Parâmetros opcionais

      • SamplePer3Secs: Quantidade de amostras coletadas a cada três segundos.

      • Percentage: Porcentagem de amostragem. Para amostrar 10% dos rastros, por exemplo, defina este valor como 10.

      • Logging: Define as configurações de log e depuração. Level especifica o nível de log, enquanto FilePath indica o local e o nome do arquivo de log.

  3. Reinicie o projeto .NET.

    dotnet run
  1. Verifique os logs locais do agente. A execução do projeto gera um arquivo skyapm-<date>.log na pasta logs. Use esse arquivo para depurar eventuais falhas no relatório de dados.

    2023-07-27 10:04:08.396 +08:00 [skywalking-net-demo] [Information] SkyApm.InstrumentStartup : Initializing ...
    2023-07-27 10:04:08.477 +08:00 [skywalking-net-demo] [Information] SkyApm.Service.RegisterService : Loaded instrument service [Skyxxx]
    2023-07-27 10:04:08.477 +08:00 [skywalking-net-demo] [Information] SkyApm.Service.LogReportService : Loaded instrument service [Skxxx]
    2023-07-27 10:04:08.477 +08:00 [skywalking-net-demo] [Information] SkyApm.Service.PingService : Loaded instrument service [SkyApm.xxx]
    2023-07-27 10:04:08.477 +08:00 [skywalking-net-demo] [Information] SkyApm.Service.SegmentReportService : Loaded instrument servicexxx
    2023-07-27 10:04:08.477 +08:00 [skywalking-net-demo] [Information] SkyApm.Service.CLRStatsService : Loaded instrument service [Skyxxx]
    2023-07-27 10:04:08.477 +08:00 [skywalking-net-demo] [Information] SkyApm.Sampling.SimpleCountSamplingInterceptor : Loaded instruxxx
    2023-07-27 10:04:08.477 +08:00 [skywalking-net-demo] [Information] SkyApm.Transport.Grpc.ConnectService : Loaded instrument servicxxx
    2023-07-27 10:04:08.486 +08:00 [skywalking-net-demo] [Information] SkyApm.Transport.Grpc.ConnectionManager : Connected server[tracixxx]
    2023-07-27 10:04:08.486 +08:00 [skywalking-net-demo] [Information] SkyApm.Diagnostics.TracingDiagnosticProcessorObserver : Loaded dxxx
    2023-07-27 10:04:08.486 +08:00 [skywalking-net-demo] [Information] SkyApm.InstrumentStartup : Started SkyAPM .NET Core Agent.
    2023-07-27 10:04:13.512 +08:00 [skywalking-net-demo] [Information] SkyApm.Diagnostics.TracingDiagnosticProcessorObserver : Loaded dxxx
    2023-07-27 10:04:13.552 +08:00 [skywalking-net-demo] [Information] SkyApm.Diagnostics.TracingDiagnosticProcessorObserver : Loaded dxxx
    2023-07-27 10:04:13.605 +08:00 [skywalking-net-demo] [Information] SkyApm.Service.RegisterService : Reported Service Instance Propexxx
    2023-07-27 10:04:20.525 +08:00 [skywalking-net-demo] [Information] SkyApm.Transport.Grpc.V8.SegmentReporter : Report 14 trace segmexxx
    2023-07-27 10:04:20.534 +08:00 [skywalking-net-demo] [Error] SkyApm.Transport.Grpc.SegmentReporter : Report trace segment fail.
    Grpc.Core.RpcException: Status(StatusCode="Unimplemented", Detail="Method not found: skywalking.v3.LogReportService/collect")
       at SkyApm.Transport.Grpc.LoggerReporter.ReportAsync(IReadOnlyCollection`1 loggerRequests, CancellationToken cancellationToken)

Referências

Para compilar o agente a partir do source, execute os comandos a seguir.

# Download the source code
git clone https://github.com/SkyAPM/SkyAPM-dotnet.git
# Enter the root directory
cd SkyAPM-dotnet/
# Switch to the target tag
git checkout [tagname]
git submodule init
git submodule update
dotnet restore
dotnet build src/SkyApm.Transport.Grpc.Protocol
dotnet build skyapm-dotnet.sln

FAQ

A execução do comando dotnet skyapm config pode gerar erro caso a versão necessária do framework .NET não esteja instalada.

dotnet skyapm config net-app 192.168.0.1:11800
You must install or update .NET to run this application.
App: /Users/whlongxi/.dotnet/tools/dotnet-skyapm
Architecture: arm64
Framework: 'Microsoft.NETCore.App', version '6.0.0' (arm64)
.NET location: /usr/local/share/dotnet
The following frameworks were found:
  7.0.9 at [/usr/local/share/dotnet/shared/Microsoft.NETCore.App]
Learn about framework resolution:
https://aka.ms/dotnet/app-launch-failed
To install missing framework, download:
https://aka.ms/dotnet-core-applaunch?framework=Microsoft.NETCore.App&framework_version=6.0.0&arch=arm64&rid=osx.13-arm64
  • Solução 1 (recomendada): Como a ferramenta dotnet-skyapm serve apenas para gerar o arquivo de configuração skyapm.json, você pode criar e configurar esse arquivo manualmente conforme descrito acima.

  • Solução 2: Use o .NET 6.0.