Updates to Developer Mode: New Instrumentation and Debugging Tools for Tracing

Developing modern, microservice-based applications can be challenging. When we launched Developer Mode last month, we were interested in seeing how providing a stream of structured trace data could make it easier to instrument and write applications.

What We Heard

People who have tried developer mode really like it! The ability to quickly start tracing your applications — and get real-time feedback on your tracing instrumentation — is super valuable. What we saw and heard from users who had more complex applications, though, was that it was very challenging to filter through the firehose of data that multiple services could generate. With that in mind, we’ve made some changes to Developer Mode to support everyone from first-time users to customers with large existing applications.

What’s New?

You’ll now be able to see a list of services reporting to your developer satellite in the sidebar, along with a count of spans that you’ve sent. Clicking on these service names will filter to a view that only contains spans from that service. In addition, we’ve added the ability to search for operations in the event stream — great for narrowing down your view to locate just the spans you’re looking for.

Developer Mode 1.1: New Instrumentation and Debugging Tools for Tracing - screenshot
Ever wanted to have someone else on your team look at a trace in Developer Mode? You now can! The URL for a Developer Mode trace is now shareable with other users in your organization.

Ready To Go?

These new features should make Developer Mode more powerful for everyone, regardless of where you are in your tracing journey. Not already using Developer Mode? Sign up for LightStep Tracing for free today and get started! Questions or comments? Drop us a line at hello@lightstep.com, we’ll be in touch!

Distributed Tracing for .NET with LightStep [x]PM

We’re excited to announce the availability of the LightStep Tracer for .NET, now in early access. Application developers who work with Microsoft’s .NET Framework 4.5+ and .NET Core can now use this tracer to instrument and observe their applications. This tracer is compatible with applications written using C# or F#, and it enables developers to use open source integrations for quickly instrumenting popular technologies such as gRPC or ASP .NET Core 2.

Why .NET?

You can find .NET powering many of the world’s top million websites, and ASP.NET Core has grown from its launch just over two years ago to become the fourth most commonly used web framework. .NET Core takes a cloud and container-first mindset making it an ideal choice for microservice development and deployment. We’re incredibly excited to take the first step towards offering .NET developers the opportunity to see the benefits of LightStep [x]PM and distributed tracing such as reduced MTTR, best-in-class observability, and the ability to profile their application performance in production.

LightStep [x]PM - Distributed Tracing for .NET
Monitoring a .NET Core application in LightStep [x]PM

Popular integrations

The tracer fully supports the current OpenTracing API for C#, which means it can be used with community-supported contributions. One good example is the .NET Core Instrumentation for OpenTracing which extends the .NET DiagnosticSource module with enhanced instrumentation for ASP.NET Core, Entity Framework Core, and .NET base class libraries such as HttpClient in order to get an existing or new project up to speed quickly with tracing instrumentation. In addition, you can use ASP .NET Action Filters to quickly build your own ASP.NET tracing using ASP .NET MVC 4 or 5.

Next steps

While this tracer is currently in early access, we’re excited about getting it into the hands of developers and organizations using .NET, so we can get feedback and feelings about this new addition. Over the next two months, we’ll be gathering information and analyzing usage to prepare for a full release in early 2019. If you’re already a LightStep[𝑥]PM customer and you’d like to start using the new tracer, please get in touch with us to learn more or check it out on GitHub.

opentracing.io v2 Released – Learn About Distributed Tracing & Get Involved

This article originally appeared on the OpenTracing blog.

We’re happy to announce that opentracing.io has been updated to version 2.0! This is the first major update to the OpenTracing website since it was created, and I’d like to go over what the changes mean for our community. First, let me extend my warmest thanks to all of the community members who helped with getting v2 launched – we truly could not have done it without you. That said, let’s take a tour of what’s new.

Site walkthrough

The first thing you’ll notice on the new site is that we reorganized our information to make it more approachable and consistent. Overall, one of the biggest goals in the site redesign was to structure information in a more accessible and easily understood way. To that end, we focused on the following four use cases:

    • Quick Starts and Tutorials: Working code that you can drop in to begin using OpenTracing.
    • Overviews: High-level, conceptual overviews of OpenTracing and its components.
    • Best Practices: Practical insights into the application of OpenTracing for real-world design challenges.
    • Guides: In-depth, language-specific usage manuals for OpenTracing that map general concepts to specific, actionable examples.

Let’s talk about what you’ll find, starting with our revamped documentation page.

Docs

OpenTracing - Distributed Tracing: A Mental Model
The main documentation page is the place to start learning about OpenTracing. There’s a quick-start introduction, an in-depth overview of the concepts of Distributed Tracing and its components, and finally a guide to best practices and common use cases for both application and framework developers.

Guides

OpenTracing - Distributed Tracing: Guides

Guides are intended to be a collection of in-depth information about how to use OpenTracing, beyond a simple ‘Hello, World’. We’ve broken these guides down by language, so there’s a single place to discover practical and in-depth information on how to use OpenTracing for its supported platforms. We’d love to have your contributions as part of these docs – check out the opentracing.io repo on GitHub and submit a pull request.

Project information

The OpenTracing specification and related documents now have a home on opentracing.io as well. You can read the spec, understand the governance model and project organization, read about the semantic conventions, and see what’s changed – all without navigating to multiple repositories.

Get involved

Interested in contributing? We’ll tell you how. This section of the site includes information on how to propose additions or changes to the OpenTracing specification, how to join a working group, and how to add your plugin or extension to our list of external contributions.

Easier to contribute

Previously, the website was built on the Jekyll static site generator. While this tooling worked, it could be cumbersome to install the required dependencies, especially for first-time contributors.

OpenTracing - Distributed Tracing - Hugo

By moving to Hugo, we were able to reduce the dependencies for local development down to a single, precompiled hugo executable.

Now, adding new guides or documentation is as straightforward as adding a new markdown page to the repository and opening a pull request. Hugo will automatically add the new content to the correct menu and section. We’re actively looking for more guide content, so head on over and contribute.

Looking forward

We’re especially excited about this new iteration of our documentation and hope that it makes it easier to use and discover information about OpenTracing. This isn’t the end of our work, though, it’s just a new beginning. We’re already starting to work on adding a searchable registry of tracers and plugins from independent contributors that we hope to ship soon. While we’ve launched with several guides in a more-or-less complete state, we have gaps. The C#, Golang, JavaScript, Ruby, and Service Mesh guides all have some stub sections that need to be filled out.

Our goal is to become the best resource on understanding and implementing Distributed Tracing, but to do that, we need your help. Check our list of open issues, see if there’s anything you’d be interested in working on, and make a PR. We’ve also got a channel dedicated to documentation on our Gitter, so feel free to ask any questions you might have there.

Happy tracing!

LightStep, OpenTracing, and Hot Soup

The Hot Soup Story

I’ve always been a problem solver, even as a child. A particularly memorable example of this is the time I decided I wanted soup, but my parents weren’t around. I took stock of my situation, and considered the following points:

  1. You make soup by putting it in a metal pan and heating it on the stove.
  2. Under no circumstances was I allowed to use the stove by myself.
  3. The microwave also makes things hot.
LightStep OpenTracing OSS
Don’t try this at home

Now, when confronted by the fact that the metal pan wouldn’t fit in the microwave due to its large handle, some children might have admitted defeat. I was cut from a different cloth, however, and removed the handle from the pot via a screwdriver, so it would fit into the microwave. I didn’t wind up with hot soup, but I did get a good light show out of the deal.

Over my years working with computers, and computer software, I’ve found similar stories crop up. We’re an industry of problem solvers, but we’re very concerned with what’s happening right now and often lack the critical context for our actions. Too often, we also get pretty light shows, but no hot soup from our changes and actions.

LightStep OpenTracing OSS
Context is key to understanding

Why I Joined LightStep

This is, among many others, the reason that I’m absolutely thrilled to join the team at LightStep as an engineer focusing on our open source projects, including OpenTracing. In the rapidly evolving world of modern software, distributed tracing isn’t a “nice to have,” it’s the single most important component of your software.

Prior to joining the team at LightStep, I led the Tools and Infrastructure team at Apprenda, working on our Enterprise Platform as a Service. I’m excited to bring my expertise and knowledge about the challenges facing both modern and traditional software enterprises to the LightStep team, and I’m even more excited to be a part of the OpenTracing project. During my time at Apprenda, I was a major advocate for OSS and led initiatives to make it easier for internal developers to contribute back to open source projects that we used, and publish new projects of our own. I can say that I really believe that the LightStep team “gets it” in terms of OSS – they understand, deeply, the benefit of open standards and interoperability. In addition, they see the value in having a culture steeped in best practices from the OSS world, both from an engineering perspective and also in internal governance and decision-making.

What’s Up with OpenTracing

I’m very excited about the future of both OpenTracing and distributed tracing in general! During my time at Apprenda, I personally witnessed the journey our customers were taking towards microservices and cloud native architectures, and I have no reason to believe that they’re suddenly going to stop. As the sophistication and complexity of our systems increase, we’re looking at a future that will be won or lost on the strength of how quickly and accurately these systems and their relationships can be observed. OpenTracing makes it possible to learn and implement a single API for observability, which makes it easier to instrument your services and components without worrying about having to support a mishmash of different applications and tools. Ultimately, OpenTracing provides the mechanism to deliver the critical context that you need to understand the behaviors of complicated systems.

Come Join Us

Sound fun? Like making soup too? Come talk to us!