In the design of large web site systems, with the popularity of distributed architectures, especially microservices architectures, we decouple the systems into smaller units and build complex systems by constantly adding new, smaller modules, or reusing existing modules. With the increasing number of modules, a single request may involve more than 10 or even dozens of services of the collaborative processing, so how to accurately and quickly locate to the online failure and performance bottlenecks, we have to face the difficult problem.
In order to solve the complex service location and performance problems in the distributed architecture, Google proposed the design and construction of the distributed tracking system in the paper "Dapper, a large-scale distributed systems tracing Infrastructure". In this context, Apache Skywalking was founded in 2015, referencing dapper paper for distributed tracking, and evolved into a full-featured application performance management system for tracking, Monitor and diagnose large distributed systems, especially containers and cloud-native microservices systems.
Earlier this year I was trying to build a distributed tracking system using. NET core butterfly when I came into contact with the Skywalking team and started working with the Skywalking team to explore skywalking support for. NET Core and released it in April skywalking The first version of the. NET core probe, and I was fortunate to join the Skywalking team in Skywalking's multi-lingual ecosystem. After the release of the. NET core probe v0.1 release, some students have been using the early adopters, but also get a lot of suggestions for improvement. After several weeks of iterations, the skywalking. NET Core probe released today v0.2 release, adding stability and httpclient and database-driven tracking support on v0.1 basis.
Before using skywalking for. NET Core application tracking, we need to first deploy skywalking collector collect profiling trace and Elasticsearch as the trace data store. Skywalking supports 5.x es, so we need to download and install the corresponding version of ES, and configure ES cluster.name
for CollectorDBCluster
. Then deploy Skywalking 5.0 Beta or later (: http://skywalking.apache.org/downloads/). For a more detailed collector deployment document, refer to Deploy-backend-in-standalone-mode and Deploy-backend-in-cluster-mode.
Finally we use the sample project to demonstrate tracking and monitoring using skywalking in a. NET core application, cloning a Skywalking-netcore project to a local
git clone https://github.com/OpenSkywalking/skywalking-netcore.git
Enter the Skywalking-netcore directory
cd skywalking-netcore
To restore the NuGet package:
dotnet restore
To start the sample project:
dotnet run -p sample/SkyWalking.Sample.Backenddotnet run -p sample/SkyWalking.Sample.Frontend
Accessing the sample app Http://localhost:5001/api/values
Open skywalking WebUI to see our application monitoring panel http://localhost:8080
Dashboard view
Topologymap View
Application View
Trace View
Tracedetails View
Apache Skywalking delivers out-of-the-box distributed tracking and application performance monitoring for. NET Core