All Projects → petabridge → Petabridge.Tracing.Zipkin

petabridge / Petabridge.Tracing.Zipkin

Licence: Apache-2.0 license
Professionally supported Zipkin + OpenTracing driver in C#

Programming Languages

C#
18002 projects
powershell
5483 projects
F#
602 projects
shell
77523 projects

Projects that are alternatives of or similar to Petabridge.Tracing.Zipkin

kong-plugin-zipkin
A Kong plugin for propogating zipkin spans and reporting spans to a zipkin server - this plugin has been moved into https://github.com/Kong/kong, please open issues and PRs in that repo
Stars: ✭ 60 (+71.43%)
Mutual labels:  zipkin, zipkin-client
spring-microservices
Spring Cloud Micro Services with Eureka Discovery, Zuul Proxy, OAuth2 Security, Hystrix CircuitBreaker, Sleuth Zipkin, ELK Stack Logging, Kafka, Docker and many new features
Stars: ✭ 114 (+225.71%)
Mutual labels:  zipkin
Opencensus Node
A stats collection and distributed tracing framework
Stars: ✭ 249 (+611.43%)
Mutual labels:  zipkin
MovieApp
全栈微服务演示案例~MovieApp
Stars: ✭ 81 (+131.43%)
Mutual labels:  zipkin
Akka.Persistence.SqlServer
Akka.Persistence.SqlServer provider
Stars: ✭ 53 (+51.43%)
Mutual labels:  akkadotnet
Akka.Logger.Serilog
Akka.NET logging integration for Serilog library
Stars: ✭ 22 (-37.14%)
Mutual labels:  akkadotnet
Gosiris
An actor framework for Go
Stars: ✭ 222 (+534.29%)
Mutual labels:  zipkin
envoy-proxy-demos
Set of Envoy Proxy feature demos (Envoy v2 API supported)
Stars: ✭ 63 (+80%)
Mutual labels:  zipkin
tapper
Zipkin client for Elixir
Stars: ✭ 68 (+94.29%)
Mutual labels:  zipkin
haystack-docker
Repository with docker-compose files to start Haystack components in sandbox
Stars: ✭ 17 (-51.43%)
Mutual labels:  zipkin
opentracing-istio-troubleshooting
Tackle the challenge of observability in a Kubernetes application that consists of multiple microservices running in the Open Liberty application server.
Stars: ✭ 16 (-54.29%)
Mutual labels:  zipkin
Akka.Persistence.PostgreSql
Akka.Persistence.PostgreSql provider
Stars: ✭ 32 (-8.57%)
Mutual labels:  akkadotnet
appmetrics-zipkin
Provide zipkin integration from appmetrics
Stars: ✭ 63 (+80%)
Mutual labels:  zipkin
akkadotnet-bootstrap
Akka.Remote and Akka.Cluster Bootstrapping Tools for Akka.NET
Stars: ✭ 29 (-17.14%)
Mutual labels:  akkadotnet
Akka.Quartz.Actor
Quartz scheduling actor
Stars: ✭ 50 (+42.86%)
Mutual labels:  akkadotnet
Zipkin
Zipkin is a distributed tracing system
Stars: ✭ 14,969 (+42668.57%)
Mutual labels:  zipkin
Akka.Persistence.Extras
Akka.NET Persistence extras and ideas
Stars: ✭ 19 (-45.71%)
Mutual labels:  akkadotnet
sample-envoy-proxy
custom implementation of service discovery with envoy and inter-service communication for spring-boot applications
Stars: ✭ 29 (-17.14%)
Mutual labels:  zipkin
tictactoe-microservices-example
An example of Spring Cloud Microservices application based on books (see Links section)
Stars: ✭ 23 (-34.29%)
Mutual labels:  zipkin
sample-micronaut-microservices
sample micronaut application illustrates using basic microservices patterns like distributed configuration and service discovery with Consul, distributed tracing with Zipkin, inter-service communication with micronaut http client
Stars: ✭ 38 (+8.57%)
Mutual labels:  zipkin

Petabridge.Tracing.Zipkin

YAZDC - Yet Another Zipkin Driver for C#.

Petabridge develops highly tested, open source infrastructure software for .NET developers professionally.

We built this driver in order to provide a commercially supported, production-grade Zipkin driver for our customers but it's also available for users at large under the terms of the Apache 2 License. We did not feel like the other drivers out there for Zipkin were particularly well-suited for the types of things our customers do (i.e. large scale IOT, finance, etc...) thus this project now exists and will be supported on behalf of our customers and users.

It's also worth noting that Petabridge.Tracing.Zipkin supports the OpenTracing standards natively. No special adapters on top of the library or anything like that. We support them out of the box. Petabridge.Tracing.Zipkin targets .NET Standard 2.0.

This driver is built to be extremely memory-efficient, thread-safe, and highly concurrent - it's powered by Akka.NET actors under the hood.

Quickstart

To get started with Petabridge.Tracing.Zipkin, install the NuGet package:

PS> Install-Package Petabridge.Tracing.Zipkin

And then instantiate an instance of the ZipkinTracer class, like so:

	var url = "http://localhost:9411";
	var tracer = new ZipkinTracer(new ZipkinTracerOptions(url, "AaronsApp", debug:true));
	Console.WriteLine("Connected to Zipkin at {0}", url);
	Console.WriteLine("Type some gibberish and press enter to create a trace!");
	Console.WriteLine("Type '/exit to quit.");
	var line = Console.ReadLine();
	Span current = null;
	while (string.IsNullOrEmpty(line) || !line.Equals("/exit"))
	{
	    IZipkinSpanBuilder sb = null;
	    if (string.IsNullOrEmpty(line))
	    {
	        sb = tracer.BuildSpan("no-op").WithTag("empty", true);
	        if (current != null)
	        {
	            current.Finish();
	        }
	    }
	    else
	    {
	        sb = tracer.BuildSpan("actual-op").WithTag("empty", false);
	        if (current != null)
	        {
	            current.Finish();
	            sb = sb.AsChildOf(current);
	        }
	    }

	    current = sb.Start();

	    if (!string.IsNullOrEmpty(line))
	    {
	        current.Log(line);
	    }

	    line = Console.ReadLine();
	}

	current?.Finish();

	tracer.Dispose(); // call dispose when you're done, please.
}

That's actually our entire demo application and it works nicely:

Petabridge.Tracing.Zipkin.SimpleDemo output results

Firing Up Zipkin

Need help setting up your own Zipkin instance? If you have Docker installed on your system, then the fastest way to get up and running is using one of the Docker templates for Zipkin defined here: https://github.com/openzipkin/docker-zipkin

Clone that repository and then try the following (from the root directory of your local clone):

PS> docker-compose -f docker-compose.yml -f docker-compose-cassandra.yml up

Docker will be running at http://localhost:9411 by default, usually.

Building this solution

To run the build script associated with this solution, execute the following:

Windows

c:\> build.cmd all

Linux / OS X

c:\> build.sh all

If you need any information on the supported commands, please execute the build.[cmd|sh] help command.

This build script is powered by FAKE; please see their API documentation should you need to make any changes to the build.fsx file.

Previewing Documentation

To preview the documentation for this project, execute the following command at the root of this folder:

C:\> serve-docs.cmd

This will use the built-in docfx.console binary that is installed as part of the NuGet restore process from executing any of the usual build.cmd or build.sh steps to preview the fully-rendered documentation. For best results, do this immediately after calling build.cmd buildRelease.

Release Notes, Version Numbers, Etc

This project will automatically populate its release notes in all of its modules via the entries written inside RELEASE_NOTES.md and will automatically update the versions of all assemblies and NuGet packages via the metadata included inside common.props.

If you add any new projects to the solution created with this template, be sure to add the following line to each one of them in order to ensure that you can take advantage of common.props for standardization purposes:

<Import Project="..\common.props" />
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].