@Martindotnet@hachyderm.io
@Martindotnet@hachyderm.io avatar

Martindotnet

@Martindotnet@hachyderm.io

#O11y Activitist, #Microsoft MVP, Developer Advocate at https://honeycomb.io, #dotnet enthusiast.

This profile is from a federated server and may be incomplete. Browse more on the original instance.

Martindotnet, to dotnet
@Martindotnet@hachyderm.io avatar

I got inspired last night to make all your tests a trace... so I built a thing. Still really rough, but it's working.

@bradwilson I'd be interested in your impressions.

https://github.com/practical-otel/dotnet-xunit-otel

hazelweakly, to random
@hazelweakly@hachyderm.io avatar

What's one of the silliest domain names you own? Mine is legit-elephant.lol and there's an entire story behind it. Some of you were even here for this!

C'mere and sit down, I'll tell you the story of the fateful night in the fediverse where Elon Musk flipped his lid and the entire fediverse flipped a middle finger to him.

The story begins during the winter holidays of 2022, back when hachyderm lived on Kris Nova's servers

It was a different world then, wasn't it?

Martindotnet,
@Martindotnet@hachyderm.io avatar

@hazelweakly onlyspans.com :)

Martindotnet,
@Martindotnet@hachyderm.io avatar

@hazelweakly yup, I have one too... I think it was @jordan who gave me mine!

Nick_Craver, to random

I’m listening to my wife and a friend plan the days at Disney and I swear this is at least 20x more complicated than any of our global platform deployments to several million machines at work.

Martindotnet,
@Martindotnet@hachyderm.io avatar

@Nick_Craver we're only doing Paris for 4 days, and I swear there are military commanders who would look at that and say "woo... like, chill out".

allennewton, to dotnet

Not every software application written in is a microservices architecture or cloud based. The hype machine for is so loud.

Martindotnet,
@Martindotnet@hachyderm.io avatar

@chethusk @allennewton the problem is that until people have worked in large scale complicated applications, they'll struggle to still cling to log outputs.

Tracing is amazing for monoliths too, and the causality you see is beyond what logs can give, but until people have those complex applications, and they're the ones who have to support them in production, it's an uphill battle to get them to change their local workflow to something better.

Martindotnet,
@Martindotnet@hachyderm.io avatar

@bitbonk @khalidabuhakmeh @chethusk @allennewton otel is more than one thing though... the protocol and SDKs can help your scenario, you do have visualisation and extraction issues, but that's not OTEL something else, you can use OTel produce a standardised format log if that's what you want.

Tracing and trace visualisation too, you can output to json... the production is extraction as we've discussed

Martindotnet,
@Martindotnet@hachyderm.io avatar

@bitbonk @khalidabuhakmeh @chethusk @allennewton otel, collector, clickhouse and superset.

Otel is the mechanism, what you use to store and visualise is upto you, you can use local visualisation tools.

Martindotnet,
@Martindotnet@hachyderm.io avatar

@bitbonk @khalidabuhakmeh @chethusk @allennewton @avaloniaui clickhouse, that's what you want... its basic sql queries and had a way to access from .NET, you'll need the collector though.

Martindotnet,
@Martindotnet@hachyderm.io avatar

@bitbonk @khalidabuhakmeh @chethusk @allennewton it's a go executable, while it's conceivable, I wouldn't recommend it.

Better that you package clickhouse and the collector together really.

Martindotnet,
@Martindotnet@hachyderm.io avatar

@davidwengier @chethusk @allennewton

Maybe I need to make my talks more obvious that they're not just for microservices. Because Distributed tracing is what happens when trace an application and connect it to a trace in another application.

I've been wanting to build a vscode extension that accepts otlp and has a dashboard for a long time.

JintDev, to random
@JintDev@fosstodon.org avatar

@paigerduty I was listening to your appearance on last week and you mentioned that in all of your services should send data to the same collector. Is this always the case? I was thinking that some ingestion platforms would be able to correlate all the traces, but I could easily be wrong there.
I was thinking I could have one collector per service in a separate container, or even one per eng group. Maybe that isn't feasible, best practices though?

Martindotnet,
@Martindotnet@hachyderm.io avatar

@depechie @JintDev @paigerduty the reason for sending all the spans to a single collector is purely around tail sampling.

If you don't want to do tail sampling, there is no need to have a mechanism (like the loadbalancing exporter) to send all the spans for a trace to the same collector.

It's very common to use tiered collectors for different purposes, like redaction inside a cluster, and then another tier outside.

Martindotnet,
@Martindotnet@hachyderm.io avatar
jeremydmiller, to random
@jeremydmiller@hachyderm.io avatar

Just barely looking into Project Aspire this morning, and started jotting down notes on using that with Wolverine and/or Marten: https://github.com/JasperFx/wolverine/issues/635

Martindotnet,
@Martindotnet@hachyderm.io avatar

@jeremydmiller Did you see the extension I just added so the dashboard runs in a single app, without the apphost?

Martindotnet,
@Martindotnet@hachyderm.io avatar
Martindotnet, to dotnet
@Martindotnet@hachyderm.io avatar

So I saw the new Aspire demo of the dashboard from , and thought "I want that, but I don't want to have to change my apps".

So I built an extension

https://github.com/martinjt/aspire-app-extension/pkgs/nuget/AspireDashboard.Extensions

I've created some issues in the Aspire repo too, so it might get to something official at some stage, but for now, feel free to try and, and maybe just copy the approach!

Martindotnet, to dotnet
@Martindotnet@hachyderm.io avatar

So that works... Aspire dashboard running without the full Aspire App framework.

So hopefully a nice replacement for not having to use Jaeger.

Next step...

services.AddAspireDashboard(); So that it configures OpenTelemetry too.

Aspire for any app in development

khalidabuhakmeh, to dotnet
@khalidabuhakmeh@mastodon.social avatar

Bracing for the “When will Rider support .NET 8?!” tsunami…

Brace Yourself Here We Go GIF by MOODMAN

Martindotnet,
@Martindotnet@hachyderm.io avatar

@khalidabuhakmeh I'm more interested on when you'll start supporting .NET 9.

Martindotnet,
@Martindotnet@hachyderm.io avatar

@khalidabuhakmeh like, you have -7 days to start it...

RichiH, to random
@RichiH@chaos.social avatar

Interesting tidbit of the week:

@grafana always scales up infrastructure for Black Friday as it's an important time for our customers. We do it in general, but some customers require specific increases.

The market leader in an end consumer segment just asked us to scale the logs infra up by 25% and keep metrics as-is.

When I keep saying that metrics are the most efficient data format in observability, this is what I mean...

Martindotnet,
@Martindotnet@hachyderm.io avatar

@RichiH @grafana efficient doesn't mean more useful.

Sure you can store the better, but that isn't why the signals exist. They exist so you can answer questions, and metrics only allow you to answer questions you knew you'd want to know the answer to.

Observability is about way more than than.

Metrics are OK, but a very coarse signal and are only a starting point at best.

Martindotnet, to random
@Martindotnet@hachyderm.io avatar

@khalidabuhakmeh do you know a blazor app could be a VSCode add-on...

As in, if I want to create a vs code addon, could I do it in blazor rather than JS...

paigerduty, (edited ) to random
@paigerduty@hachyderm.io avatar

If you were attending a workshop on say...instrumenting traces with in a containerized app where you to frequently modified code, restarted the app, verified your changes in an o11y UI over and over....

How would you prefer to handle repetitive commands like that?

Martindotnet,
@Martindotnet@hachyderm.io avatar

@paigerduty I've been experimenting with workshop attendees having access to a code space, that makes things easier in terms of support.

For which method, my advice is keep it idiomatic to the language. If you don't, people will spend a lot of time trying to understand the ways it works etc.

Copy paste is generally not bad, but with python indentation issues, it's... well... interesting...

Martindotnet,
@Martindotnet@hachyderm.io avatar

@paigerduty gitpod is an alternative that we use for our public/free workshops.

paigerduty, to random
@paigerduty@hachyderm.io avatar

deleted_by_author

  • Loading...
  • Martindotnet,
    @Martindotnet@hachyderm.io avatar

    @paigerduty metrics aren't graphs and vice versa.

    So many people think "I need some graphs, therefore I need my app to emit metrics".

    Graphs are the life blood of understanding systems, but thar doesn't mean metrics. You can derive graphs from tracing data, from logs, literally any structured data. It all depends on what your backend supports.

    Martindotnet,
    @Martindotnet@hachyderm.io avatar

    @paigerduty service maps are great, but they're poor at finding issues over time.

    Building graphs based on raw span data is the super power really. Being able to drill in from there to individual requests, going from "there's a problem, going on" to "here's one of the requests that's having that exact problem".

    Too many people think that the flow has to be "metrics say there's a problem, let's search through some requests"

    Martindotnet, to random
    @Martindotnet@hachyderm.io avatar

    Does anyone know a reputable container image that's a basic webapp? like a hello world one? Needs to be reputable rather than someone's random one.

  • All
  • Subscribed
  • Moderated
  • Favorites
  • megavids
  • thenastyranch
  • magazineikmin
  • InstantRegret
  • ethstaker
  • modclub
  • Durango
  • Youngstown
  • ngwrru68w68
  • slotface
  • rosin
  • mdbf
  • kavyap
  • everett
  • JUstTest
  • DreamBathrooms
  • khanakhh
  • tacticalgear
  • tester
  • normalnudes
  • GTA5RPClips
  • cubers
  • cisconetworking
  • osvaldo12
  • anitta
  • provamag3
  • Leos
  • lostlight
  • All magazines