-
Notifications
You must be signed in to change notification settings - Fork 210
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
Conditional Routing for service-map data is not working. #5280
Comments
There was a similar question on the OpenSearch Slack ingest channel recently. I posted the following reply indicating some work-arounds:
Following this post, I suggest to extend Data Prepper to copy a configurable list of fields from a span to a service map edge. There is an issue with disambiguity: Different spans might contain different values for the same edge/connection. To enable the multi-tenancy routing for @arundanegoudar, Data Prepper would need to index different versions of the same edge, one for each field value. I am not sure about the implications for memory consumption of that approach. I have also not investigated whether an implementation is feasible. |
I think the problem here is that the Could you route all of your spans to a single service map and then use that one service map? You could at the same time route the spans to different OpenSearch indexes. |
Hello @dlvenable , Thanks for the kind & informative response ... As we're willing to index data depending upon the tenant_name in the OpenSearch, the service_map data won't follow that trend. Already we're indexing the span or trace data depending upon the tenant_name itself, we want to have the same trend for the service_map data which is a necessity for our next step in the application development. Would you please suggest ways for indexing service_map data depending upon tenant_name implementation. |
@dlvenable: Thanks for confirming my suspicion on the service map processor. I have started creating a manual test setup to work on the multi-tenant service map routing. |
The OpenTelemetry Collector Contrib repository contains a service graph connector to create service maps from traces. It allows the definition of additional dimensions for grouping the requests. This feature would help the OP. Maybe that connector can serve as an inspiration on how to evolve the service map processor in Data Prepper. |
Issue:
We're implementing a conditional based routing for trace data for creating dynamic indexes(multiple sinks) based upon one of the field present in the dataset (tenant_name). The conditional routing is working for traces, but not for the service-map data. The template for the service-map doesn't contain more fields and adding of custom fields is also not possible. So the service-map data is not going to relevant dynamic indexes like the trace data, which is causing issues while stitching the data at user interface level.
Reproduce:
Have multiple sinks for trace & service-map data depending upon the tenant_name (tenant1, tenant2 & tenant3 ... tenantN) field.
The service-map data won't follow the same routing like trace data.
Expected behavior
The trace & service-map data need to follow the similar kind of dynamic routing.
Config: pipelines.yaml for trace & service-map data
################################################################################
################################################################################
The text was updated successfully, but these errors were encountered: