Skip to content

Commit

Permalink
fix(observability): issues with event_cache PR (#17768)
Browse files Browse the repository at this point in the history
Ref #17580
Ref #17581

Re this PR #17549

This fixes a couple of issues with the mentioned PR.

- When telemetry was turned off it was still emitting the empty tags.
- The service tag was being emitted by converting the value using
`to_string`. This meant the value was delimited by `"`.
- A `telemetry` section is added to the global configuration docs.

---------

Signed-off-by: Stephen Wakely <fungus.humungus@gmail.com>
  • Loading branch information
StephenWakely authored Jun 28, 2023
1 parent 35c4581 commit fdf02d9
Show file tree
Hide file tree
Showing 3 changed files with 66 additions and 2 deletions.
10 changes: 9 additions & 1 deletion lib/vector-common/src/request_metadata.rs
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,14 @@ impl EventCountTags {
service: OptionalTag::Specified(None),
}
}

#[must_use]
pub fn new_unspecified() -> Self {
Self {
source: OptionalTag::Ignored,
service: OptionalTag::Ignored,
}
}
}

/// Must be implemented by events to get the tags that will be attached to
Expand Down Expand Up @@ -133,7 +141,7 @@ impl GroupedCountByteSize {
}
}
GroupedCountByteSize::Untagged { size } => {
event_cache.emit(&EventCountTags::new_empty(), *size);
event_cache.emit(&EventCountTags::new_unspecified(), *size);
}
}
}
Expand Down
2 changes: 1 addition & 1 deletion lib/vector-core/src/event/log_event.rs
Original file line number Diff line number Diff line change
Expand Up @@ -224,7 +224,7 @@ impl GetEventCountTags for LogEvent {

let service = if telemetry().tags().emit_service {
self.get_by_meaning("service")
.map(ToString::to_string)
.map(|value| value.to_string_lossy().to_string())
.into()
} else {
OptionalTag::Ignored
Expand Down
56 changes: 56 additions & 0 deletions website/cue/reference/configuration.cue
Original file line number Diff line number Diff line change
Expand Up @@ -252,6 +252,62 @@ configuration: {
}
}

telemetry: {
common: false
description: """
Configures options for how Vector emits telemetry.
"""
required: false
type: object: {
examples: []
options: {
tags: {
required: false
description: """
Controls which tags should be included with the `vector_component_sent_events_total` and
`vector_component_sent_event_bytes_total` metrics.
"""
type: object: {
examples: []
options: {
emit_source: {
common: true
description: """
Add a `source` tag with the source component the event was received from.
If there is no source component, for example if the event was generated by
the `lua` transform a `-` is emitted for this tag.
"""
required: false
type: bool: {
default: false
}
}
emit_service: {
common: false
description: """
Adds a `service` tag with the service component the event was received from.
For logs this is the field that has been determined to mean `service`. Each source may
define different fields for this. For example, with `syslog` events the `appname` field
is used.
Metric events will use the tag named `service`.
If no service is available a `-` is emitted for this tag.
"""
required: false
type: bool: {
default: false
}
}
}
}
}
}
}
}

log_schema: {
common: false
description: """
Expand Down

0 comments on commit fdf02d9

Please sign in to comment.