SkyAPM / SkyAPM-dotnet

The .NET/.NET Core instrument agent for Apache SkyWalking
Apache License 2.0
1.64k stars 332 forks source link
apm csharp distributed-tracing dotnet metric observability skywalking

SkyAPM C#/.NET instrument agent

Sky Walking logo

Apache SkyWalking is an APM designed for microservices, cloud native and container-based (Docker, K8s, Mesos) architectures. SkyAPM-dotnet provides the native support agent in C# and .NETStandard platform, with help from the Apache SkyWalking committer team.

issues pulls releases Gitter Twitter Follow

CI Build Status

Platform Build Server Master Status
AppVeyor Windows/Linux Build status

Nuget Packages

Package Name NuGet MyGet Downloads
SkyAPM.Agent.AspNetCore nuget myget stats
SkyAPM.Agent.GeneralHost nuget myget

MyGet feed URL https://www.myget.org/F/skyapm-dotnet/api/v3/index.json

Supported

Features

A quick list of SkyWalking .NET Core Agent's capabilities

Getting Started

Deploy SkyWalking Backend And UI

Requirements

Start with v1.0.0, SkyAPM .NET Core Agent only supports SkyWalking 8.0 or higher. The SkyWalking doc is here.

Install SkyWalking .NET Core Agent

You can run the following command to install the SkyWalking .NET Core Agent in your project.

dotnet add package SkyAPM.Agent.AspNetCore

How to use

Set the ASPNETCORE_HOSTINGSTARTUPASSEMBLIES environment variable to support the activation of the SkyAPM .NET Core Agent.

Examples

dotnet new mvc -n sampleapp
cd sampleapp
dotnet add package SkyAPM.Agent.AspNetCore
set ASPNETCORE_HOSTINGSTARTUPASSEMBLIES=SkyAPM.Agent.AspNetCore
set SKYWALKING__SERVICENAME=sample_app
dotnet run
dotnet new mvc -n sampleapp
cd sampleapp
dotnet add package SkyAPM.Agent.AspNetCore
export ASPNETCORE_HOSTINGSTARTUPASSEMBLIES=SkyAPM.Agent.AspNetCore
export SKYWALKING__SERVICENAME=sample_app
dotnet run

Configuration

Install SkyAPM.DotNet.CLI

dotnet tool install -g SkyAPM.DotNet.CLI

For 2.2.x or older, use dotnet skyapm config [your_service_name] [your_servers] to generate config file.

dotnet skyapm config sample_app 192.168.0.1:11800

For 2.3.x or newer, use dotnet skyapm config ${your_service_name} [--reporter=grpc|kafka] [--grpcservers=...] [--kafkaservers=...] to generate config file.

# grpc
dotnet skyapm config sample_app --reporter=grpc --grpcservers=192.168.0.1:11800

# kafka
dotnet skyapm config sample_app --reporter=kafka --kafkaservers=192.168.0.1:9092

Contributing

This section is in progress here: Contributing to SkyAPM-dotnet

Contact Us

If you have issues about SkyWalking protocol, its official backend, ask questions at their Apache official channels. All following channels are not suitable for .net agent, but good if you are facing backend/UI issues.

License

Apache 2.0 License.