Mitigation of data loss from trace sampling
In one implementation, a device may obtain a set of OpenTelemetry data generated by instrumenting an online application. The device may form a group of OpenTelemetry data associated with a common event and comprising at least a portion of the set of OpenTelemetry data. The device may derive, using the group of OpenTelemetry data, information for display to a user interface regarding the event. The device may provide the group of OpenTelemetry data for sampling, after deriving the information for display.
1 . A method, comprising:
obtaining, by a collector device, a set of OpenTelemetry data generated by instrumenting an online application, wherein:
the collector device comprises a multi-pipeline configuration including a trace pipeline configured to process the set of OpenTelemetry data, a connector configured to generate event payloads from grouped OpenTelemetry data, and an event pipeline configured to modify event payloads for display, and
at least a portion of the set of OpenTelemetry data is provided for one or both of tail based sampling or head based sampling;
forming, by the collector device in the trace pipeline, a group of OpenTelemetry data associated with a common event and comprising at least a portion of the set of OpenTelemetry data;
deriving, by the collector device and using the group of OpenTelemetry data, information for display to a user interface regarding the common event, wherein deriving the information comprises:
forming, using the connector and the group of OpenTelemetry data, an event payload, and
modifying, using the event pipeline, the event payload to derive the information;
when at least the portion of the set of OpenTelemetry data is provided for head based sampling:
excluding, by the collector device, one or more traces of the set of OpenTelemetry data from undergoing head based sampling, before obtaining the set of OpenTelemetry data; and
when at least the portion of the set of OpenTelemetry data is provided for tail based sampling:
providing, by the collector device, the group of OpenTelemetry data for tail based sampling, after deriving the information for display.
2 . The method as in claim 1 , further comprising:
utilizing an attribute identifier to identify attributes within the set of OpenTelemetry data that are targeted for inclusion in the group of OpenTelemetry data.
3 . The method as in claim 2 , further comprising:
excluding, based on the attribute identifier, traces that include the attributes from a head sampling operation.
4 . The method as in claim 1 , further comprising:
mapping an attribute within the group of OpenTelemetry data to an identifier of a transaction entity associated with the attribute.
5 . The method as in claim 1 , wherein deriving the information for display to the user interface comprises:
providing the information to an observability platform monitoring the online application.
6 . The method as in claim 1 , wherein modifying, using the event pipeline, the event payload includes masking sensitive data within the event payload.
7 . The method as in claim 1 , wherein forming the group of OpenTelemetry data includes grouping OpenTelemetry data that includes a targeted attribute per trace from the set of OpenTelemetry data.
8 . The method as in claim 1 , wherein forming the group of OpenTelemetry data includes grouping OpenTelemetry data that includes a targeted attribute per span from the set of OpenTelemetry data.
9 . The method as in claim 1 , wherein the common event is an inclusion of a targeted attribute.
10 . The method as in claim 1 , wherein deriving the information for display includes generating an event in a transactional workflow based on the group of OpenTelemetry data.
11 . An apparatus, comprising:
one or more network interfaces;
a processor coupled to the one or more network interfaces and configured to execute one or more processes; and
a memory configured to store a process that is executable by the processor, the process when executed configured to:
obtain a set of OpenTelemetry data generated by instrumenting an online application, wherein at least a portion of the set of OpenTelemetry data is provided for one or both of tail based sampling or head based sampling;
form, using a trace pipeline configured to process the set of OpenTelemetry data, a group of OpenTelemetry data associated with a common event and comprising at least a portion of the set of OpenTelemetry data;
derive, using the group of OpenTelemetry data, a connector configured to generate event payloads from grouped OpenTelemetry data, and an event pipeline configured to modify event payloads for display, information for display to a user interface regarding the common event, wherein to derive the information comprises to:
form, using the connector and the group of OpenTelemetry data, an event payload, and
modify, using the event pipeline, the event payload to derive the information;
when at least the portion of the set of OpenTelemetry data is provided for head based sampling:
exclude one or more traces of the set of OpenTelemetry data from undergoing head based sampling, before obtaining the set of OpenTelemetry data; and
when at least the portion of the set of OpenTelemetry data is provided for tail based sampling:
provide the group of OpenTelemetry data for tail based sampling, after deriving the information for display.
12 . The apparatus as in claim 11 , the process when executed further configured to:
utilize an attribute identifier to identify attributes within the set of OpenTelemetry data that are targeted for inclusion in the group of OpenTelemetry data.
13 . The apparatus as in claim 12 , the process when executed further configured to:
exclude, based on the attribute identifier, traces that include the attributes from a head sampling operation.
14 . The apparatus as in claim 11 , the process when executed further configured to:
map an attribute within the group of OpenTelemetry data to an identifier of a transaction entity associated with the attribute.
15 . The apparatus as in claim 11 , the process when executed further configured to derive the information for display to the user interface by:
providing the information to an observability platform monitoring the online application.
16 . The apparatus as in claim 11 , wherein modifying, using the event pipeline, the event payload includes masking sensitive data within the event payload.
17 . The apparatus as in claim 11 , the process when executed further configured to form the group of OpenTelemetry data by grouping OpenTelemetry data that includes a targeted attribute per trace from the set of OpenTelemetry data.
18 . The apparatus as in claim 11 , the process when executed further configured to form the group of OpenTelemetry data by grouping OpenTelemetry data that includes a targeted attribute per span from the set of OpenTelemetry data.
19 . The apparatus as in claim 11 , wherein the common event is an inclusion of a targeted attribute.
20 . A tangible, non-transitory, computer-readable medium storing program instructions that cause a device to execute a process comprising:
obtaining a set of OpenTelemetry data generated by instrumenting an online application, wherein at least a portion of the set of OpenTelemetry data is provided for one or both of tail based sampling or head based sampling;
forming, using a trace pipeline configured to process the set of OpenTelemetry data, a group of OpenTelemetry data associated with a common event and comprising at least a portion of the set of OpenTelemetry data;
deriving, using the group of OpenTelemetry data, a connector configured to generate event payloads from grouped OpenTelemetry data, and an event pipeline configured to modify event payloads for display, information for display to a user interface regarding the common event, wherein deriving the information comprises:
forming, using the connector and the group of OpenTelemetry data, an event payload, and
modifying, using the event pipeline, the event payload to derive the information;
when at least the portion of the set of OpenTelemetry data is provided for head based sampling:
excluding one or more traces of the set of OpenTelemetry data from undergoing head based sampling, before obtaining the set of OpenTelemetry data; and
when at least the portion of the set of OpenTelemetry data is provided for tail based sampling:
providing the group of OpenTelemetry data for tail based sampling, after deriving the information for display.