SigNoz / signoz

SigNoz is an open-source observability platform native to OpenTelemetry with logs, traces and metrics in a single application. An open-source alternative to DataDog, NewRelic, etc. 🔥 🖥. 👉 Open source Application Performance Monitoring (APM) & Observability tool
https://signoz.io
Other
18.29k stars 1.17k forks source link

Service Map Granularity improvements #4701

Open LB-CF opened 5 months ago

LB-CF commented 5 months ago

Is your feature request related to a problem?

Currently for an event based architecture, the service map appears to use the messaging.system field to display and link the service. This means that if you're using Kafka for example, every service is just linked to 'kafka' making the service map not particularly useful for seeing how the services are related/communicating across the architecture.

Also the direction of the information is not clear (producing vs consuming).

Describe the solution you'd like

The ability separate the service map items based on messaging.destination.name, and ability to see direction of information flow (producing vs consuming).

This would give each topic it's own entity within the service map, allowing to see at a glance exactly which topics each microservice is producing to and consuming from, at a glance. This would be incredibly useful in very large microservice architectures.

Describe alternatives you've considered

Adding the topic name to each messaging.system (messaging.system = 'kafka-' + topic) but this is against OTel spec.

welcome[bot] commented 5 months ago

Thanks for opening this issue. A team member should give feedback soon. In the meantime, feel free to check out the contributing guidelines.

LB-CF commented 5 months ago

As an addendum, this issue is also present with the database.

In the Service Map, all microservices appear to be connected to the same Mysql instance because they're being separated based on the DB_SYSTEM attribute.

CaueP commented 1 month ago

As an addendum, this issue is also present with the database.

In the Service Map, all microservices appear to be connected to the same Mysql instance because they're being separated based on the DB_SYSTEM attribute.

+1

I noticed the same with my MongoDB, PostgreSQL, Redis and Elasticsearch instances. IMO it should use the tag db.name instead of db.system or maybe the composition of db.system and db.name.