-
Notifications
You must be signed in to change notification settings - Fork 94
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[EPIC] Metric Stats #3147
Comments
@Dav1dde I am wondering if this work is still in flight, and whether we consider that work to be P0. It seems like the remaining tasks are lower priority. If you agree, could you please move the remaining stuff to a lower priority epic and close this one? |
I would like to keep the Epic open, we are at a stage where we provide all the data which is needed now but we're not at a stage that this data will stay correct with upcoming features. Basically at this point we implemented the minimum set everyone else needs but the remaining legwork in Relay is as important just not visible to anyone outside of ingest. That being said, if moving the remaining tasks to a new Epic makes stuff easier for you I am not opposed to it. |
@Dav1dde makes sense, thanks. I'm going to leave this epic as is but reduce it's priority since it sounds like we've completed the P0 work. Feel free to adjust as you see fit. |
Closing this, we got all the important bits in place and with the current restructure of the metrics product the remaining pieces are not as important anymore. |
Description
We need outcomes for DDM / custom metrics.
Outcomes for Metrics are generally a tricky problem for several reasons. Metrics are aggregated in multiple stages, SDKs, customer Relays, pop Relays and processing Relays, which makes giving an accurate number of volume hard. On top of that, volume is just a small scaling factor we have to consider, a much bigger factor is the cardinality of a metric.
Ideally outcomes can capture the volume and the cardinality of a metric.
Outcomes should tell us the volume of a single metric (defined by its MRI) and its cardinality per hour.
Our current outcomes cannot capture this information, we need a new mechanism to collect metric outcomes.
Requirements
Why not use Outcomes?
max()
aggregated notsum()
'edQuantity / Volume
We want to determine the volume of metrics received by the first layer of our infrastructure (PoP-Relays). Client side aggregated metrics are counted with a quantity of
1
.For example: If Relay receives 500
statsd
items for a single metric per hour, this metric would be considered to have a volume/quantity of 500 metrics per hour.Cardinality
We are interested in the cardinality of a single metric (MRI) per hour.
Cardinality can be queried from storage or collected through the Relay cardinality limiter.
Metric Stats Namespaces
Volume:
c:metric_stats/volume@none
Tags:
mri
: Metric Name/MRI:<type>:<namespace>/<name>[@<unit>]
mri.type
: Metric Typemri.namespace
: Metric namespace (extracted from the MRI)outcome.id
: Outcome ID, metric outcomes share the same numeric outcome ID with regular outcomes.outcome.reason
: Optional machine readable, free-form reason code.Cardinality:
g:metric_stats/cardinality@none
mri
: Metric Name/MRI:<type>:<namespace>/<name>[@<unit>]
mri.type
: Metric Typemri.namespace
: Metric namespace (extracted from the MRI)cardinality.limit
: The cardinality limit id which generated this report.cardinality.window
: Cardinality window size in seconds.cardinality.scope
: Cardinality scope (name
,project
,organization
).If cardinality is tracked by a
project
ororganization
themri*
tags will not be present.Examples
Payloads/Metrics emitted from Relay into the generic metrics topic.
Volume - Accepted
Cardinality by Name
Cardinality by Type
Milestone 1 ✅ - Volume / Happy Path
Implement the happy path ("accepted") for volume metric stats:
c:metric_stats/volume@none
.Tasks
Milestone 2 ✅ - Cardinality / Happy Path
Implement the happy path ("accepted") for cardinality metric stats:
g:metric_stats/cardinality@none
.Tasks
Milestone 2.5 ✅ - Cardinality by Minute and Project
Tasks
Milestone 3 ✅ - Negative Outcomes
Tasks
Milestone 4 - Finishing Touches
Tasks
The text was updated successfully, but these errors were encountered: