vector/internal_events/
config.rs1use metrics::counter;
2use vector_lib::internal_event::InternalEvent;
3
4#[derive(Debug)]
5pub struct ConfigReloadRejected {
6 reason: ReloadRejectReason,
7}
8
9impl InternalEvent for ConfigReloadRejected {
10 fn emit(self) {
11 match &self.reason {
12 ReloadRejectReason::GlobalOptionsChanged { fields } => {
13 error!(
14 message = "Config reload rejected due to non-reloadable global options.",
15 reason = %self.reason.as_str(),
16 changed_fields = %fields.join(", "),
17 );
18
19 counter!(
20 "config_reload_rejected",
21 "reason" => self.reason.as_str(),
22 )
23 .increment(1);
24 }
25 ReloadRejectReason::FailedToComputeGlobalDiff(err) => {
26 error!(
27 message = "Config reload rejected due to failed to compute global diff.",
28 reason = %self.reason.as_str(),
29 error = %err,
30 );
31
32 counter!(
33 "config_reload_rejected",
34 "reason" => self.reason.as_str(),
35 )
36 .increment(1);
37 }
38 }
39 }
40
41 fn name(&self) -> Option<&'static str> {
42 Some("ConfigReloadRejected")
43 }
44}
45
46impl ConfigReloadRejected {
47 pub const fn global_options_changed(fields: Vec<String>) -> Self {
48 Self {
49 reason: ReloadRejectReason::GlobalOptionsChanged { fields },
50 }
51 }
52
53 pub const fn failed_to_compute_global_diff(error: serde_json::Error) -> Self {
54 Self {
55 reason: ReloadRejectReason::FailedToComputeGlobalDiff(error),
56 }
57 }
58}
59
60#[derive(Debug)]
61enum ReloadRejectReason {
62 GlobalOptionsChanged { fields: Vec<String> },
63 FailedToComputeGlobalDiff(serde_json::Error),
64}
65
66impl ReloadRejectReason {
67 const fn as_str(&self) -> &'static str {
68 match self {
69 Self::GlobalOptionsChanged { fields: _ } => "global_options changed",
70 Self::FailedToComputeGlobalDiff(_) => "failed to compute global diff",
71 }
72 }
73}
74
75#[derive(Debug)]
76pub struct ConfigReloaded;
77
78impl InternalEvent for ConfigReloaded {
79 fn emit(self) {
80 info!("New configuration loaded successfully.");
81
82 counter!("config_reloaded",).increment(1);
83 }
84
85 fn name(&self) -> Option<&'static str> {
86 Some("ConfigReloaded")
87 }
88}