vector/internal_events/
nginx_metrics.rs

1use metrics::counter;
2use vector_lib::internal_event::InternalEvent;
3use vector_lib::{
4    internal_event::{error_stage, error_type},
5    json_size::JsonSize,
6};
7
8use crate::sources::nginx_metrics::parser::ParseError;
9
10#[derive(Debug)]
11pub struct NginxMetricsEventsReceived<'a> {
12    pub byte_size: JsonSize,
13    pub count: usize,
14    pub endpoint: &'a str,
15}
16
17impl InternalEvent for NginxMetricsEventsReceived<'_> {
18    fn emit(self) {
19        trace!(
20            message = "Events received.",
21            byte_size = %self.byte_size,
22            count = %self.count,
23            endpoint = self.endpoint,
24        );
25        counter!(
26            "component_received_events_total",
27            "endpoint" => self.endpoint.to_owned(),
28        )
29        .increment(self.count as u64);
30        counter!(
31            "component_received_event_bytes_total",
32            "endpoint" => self.endpoint.to_owned(),
33        )
34        .increment(self.byte_size.get() as u64);
35    }
36}
37
38pub struct NginxMetricsRequestError<'a> {
39    pub error: crate::Error,
40    pub endpoint: &'a str,
41}
42
43impl InternalEvent for NginxMetricsRequestError<'_> {
44    fn emit(self) {
45        error!(
46            message = "Nginx request error.",
47            endpoint = %self.endpoint,
48            error = %self.error,
49            error_type = error_type::REQUEST_FAILED,
50            stage = error_stage::RECEIVING,
51            internal_log_rate_limit = true,
52        );
53        counter!(
54            "component_errors_total",
55            "endpoint" => self.endpoint.to_owned(),
56            "error_type" => error_type::REQUEST_FAILED,
57            "stage" => error_stage::RECEIVING,
58        )
59        .increment(1);
60    }
61}
62
63pub(crate) struct NginxMetricsStubStatusParseError<'a> {
64    pub error: ParseError,
65    pub endpoint: &'a str,
66}
67
68impl InternalEvent for NginxMetricsStubStatusParseError<'_> {
69    fn emit(self) {
70        error!(
71            message = "NginxStubStatus parse error.",
72            endpoint = %self.endpoint,
73            error = %self.error,
74            error_type = error_type::PARSER_FAILED,
75            stage = error_stage::PROCESSING,
76            internal_log_rate_limit = true,
77        );
78        counter!(
79            "component_errors_total",
80            "endpoint" => self.endpoint.to_owned(),
81            "error_type" => error_type::PARSER_FAILED,
82            "stage" => error_stage::PROCESSING,
83        )
84        .increment(1);
85    }
86}