Todos os produtos
Search
Central de documentação

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

Última atualização: Aug 27, 2026

Após instrumentar um aplicativo com o SkyWalking e relatar seus dados de rastreamento para o Managed Service for OpenTelemetry, o Managed Service for OpenTelemetry passa a monitorá-lo. É possível visualizar diversos dados de monitoramento, como topologia do aplicativo, traces 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

  1. Faça login 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 envio dos 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 service 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

Informações gerais

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

Exemplo de demonstração

Para 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 usando um dos métodos a seguir.

    • Método 1: Use a ferramenta SkyAPM.DotNet.CLI para gerar o arquivo de configuração de propriedades.

    • 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 service.

      • <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: Número de amostras coletadas a cada três segundos.

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

      • Logging: Configura log e depuração. Level especifica o nível de log; FilePath define o local e o nome do arquivo de log.

  3. Reinicie o projeto .NET.

    dotnet run
  1. Verifique os logs do agente local. A execução do projeto gera um arquivo skyapm-<date>.log na pasta logs. Use esse arquivo para depurar 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

Pode ocorrer um erro ao executar o comando dotnet skyapm config se a versão necessária do framework .NET não estiver 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): A ferramenta dotnet-skyapm apenas gera o arquivo de configuração skyapm.json. Crie e configure esse arquivo manualmente conforme descrito acima.

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