Repository navigation
feat(muse-spark): add Meta Muse Spark dashboard template - #416
Merged
Merged
Conversation
Cost, token and latency monitoring for Meta Muse Spark accessed through the Meta Model API, built on gen_ai.* trace attributes. 15 panels across Overview, Cost and Tokens, Latency and Reliability, with a multi-select service picker and a fixed model picker covering the four Muse Spark model ids.
3 tasks
📊 Dashboard files added in this PR✅ An issue has been created in |
Merged
1 task done
revmag
approved these changes
Sep 11, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Adds a dashboard template for Meta Muse Spark accessed through the Meta Model API.
Where the telemetry comes from
Muse Spark is reached over an OpenAI-compatible endpoint (
https://api.meta.ai/v1), so the OpenAI SDK plusopentelemetry-instrumentation-openai-v2traces it with no provider-specific library. That instrumentation alone is not enough for a cost or latency board, for three reasons found while building this:completion_tokens_details, and reasoning is 90 to 98 percent of output tokens on every Muse Spark version.cache_read_input_tokensis declared and read inutil-genaibut never assigned, so cost computed from spans overstates real spend by 3 to 5 times on any workload that reuses a prompt.So the panels read an enriched wrapper span that records those three values from the response object, alongside the stock attributes.
Span shape
muse.chat <model>metachat <model>openaiLoad-bearing query scoping
Every panel filters
gen_ai.provider.name = 'meta'. This does two jobs and should not be removed:gen_ai.provider.name = openaiwith noserver.addressto tell them apart.gen_ai.request.model, so a request count grouped on model alone reports twice the real traffic.The
$modelvariable is a fixed list rather than a dynamic one, because a dynamic variable populates from everygen_ai.request.modelin the workspace and will offer other providers' models on a Muse Spark board.Panels
Notes for review
https://signoz.io/docs/muse-spark-monitoring/, which does not exist yet. The slug is settled and the guide is in progress.error.typeattribute, so a 401, 404 and 400 are indistinguishable except by parsing the span status message. The Errors panel groups by model and the Recent Errors table carries the provider error string.