-
Notifications
You must be signed in to change notification settings - Fork 206
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
Sink level metric for end to end latency #3494
Comments
@graytaylor0 What would be the format of the time in the |
for the first iteration I think we could just require it be an ISO_8601 string (which can be converted by date processor) |
I agree with this approach. However, we currently don't always use the
This property ( A few alternate name ideas:
I agree. We need to improve our |
Thanks @graytaylor0 @dlvenable. I like @dlvenable regarding creating |
I think we should update data-prepper-core to guarantee an Lines 130 to 132 in fe750f5
Lines 151 to 152 in fe750f5
|
@dlvenable. Makes sense. I will create it default with every |
This was my initial thought too, but you do lose some granularity on what is skewing this metric when it's at the pipeline level. I guess we have sink metrics that would help you show which one is slower vs faster. @dlvenable You're saying just a single metric even for multiple sub-pipelines? (pipeline level instead of sub-pipeline level) |
@graytaylor0 , I'm suggest that the customer configure the key to use as the "origination" time at the pipeline level. All sinks would then calculate the time based on the value in the Event for that key and the time it is sent to the sink. So each sink may have different metric values. But, the origination time is consistently configured. |
OK, I am going to add this option to |
That was not correct, I think the suggestion was to add it to |
Is your feature request related to a problem? Please describe.
Users of Data Prepper are not given an accurate look at the time it takes for Events to be processed through a Data Prepper pipeline, from the time the Event was received by the source, to the time that it is successfully sent to the sink.
Additionally, users would like to know the delay from a timestamp that is in the Events already and get an idea of the end to end latency from a source in an external system to Data Prepper to being successfully sent to the sink.
Describe the solution you'd like
A sink-level metric (ideally this full metric name would include plugin-id but since we don't have that it will have to be aggregated for now between sinks of the same type in the same sub-pipeline) named
pipelineEventLatency
. This metric will track the time between when the Event was created (thefrom_time_received
timestamp in the EventMetadata) to the time that the Event was successfully sent to the sink. The metric will be calculated by thereleaseEvent
call made by the sink to acknowledge that it was sent successfully to the sink.Additionally, for the use case of tracking latency for an external source from a timestamp in the Event, we will add another parameter to the common
SinkContext
forend_to_end_latency_metric_start_time_key
(any way to shorten this name?) which can take the name of a key in the Event to use at the starting time calculation for latency. My thought is that this would result in a second metric,endToEndEventLatency
, which will track the latency from the user's external source timestamp to the time that the Event was successfully received by the sink.Additional context
Add any other context or screenshots about the feature request here.
The text was updated successfully, but these errors were encountered: