libdd_telemetry/data/
payloads.rs

1// Copyright 2021-Present Datadog, Inc. https://www.datadoghq.com/
2// SPDX-License-Identifier: Apache-2.0
3
4use crate::data::metrics;
5
6use serde::{Deserialize, Serialize};
7
8#[derive(Serialize, Deserialize, Debug, Hash, PartialEq, Eq, Clone, Default)]
9pub struct Dependency {
10    pub name: String,
11    pub version: Option<String>,
12}
13
14#[derive(Serialize, Deserialize, Debug, Hash, PartialEq, Eq, Clone, Default)]
15pub struct Integration {
16    pub name: String,
17    pub enabled: bool,
18    pub version: Option<String>,
19    pub compatible: Option<bool>,
20    pub auto_enabled: Option<bool>,
21}
22
23#[derive(Serialize, Deserialize, Debug, Hash, PartialEq, Eq, Clone)]
24pub struct Configuration {
25    pub name: String,
26    pub value: String,
27    pub origin: ConfigurationOrigin,
28    pub config_id: Option<String>,
29    pub seq_id: Option<u64>,
30}
31
32#[derive(Serialize, Deserialize, Debug, Hash, PartialEq, Eq, Clone)]
33#[repr(C)]
34#[serde(rename_all = "snake_case")]
35pub enum ConfigurationOrigin {
36    EnvVar,
37    Code,
38    DdConfig,
39    RemoteConfig,
40    Default,
41    LocalStableConfig,
42    FleetStableConfig,
43    Calculated,
44}
45
46#[derive(Serialize, Debug)]
47pub struct AppStarted {
48    pub configuration: Vec<Configuration>,
49}
50
51#[derive(Serialize, Debug)]
52pub struct AppDependenciesLoaded {
53    pub dependencies: Vec<Dependency>,
54}
55
56#[derive(Serialize, Debug)]
57pub struct AppIntegrationsChange {
58    pub integrations: Vec<Integration>,
59}
60
61#[derive(Debug, Serialize)]
62pub struct AppClientConfigurationChange {
63    pub configuration: Vec<Configuration>,
64}
65
66#[derive(Serialize, Debug)]
67pub struct GenerateMetrics {
68    pub series: Vec<metrics::Serie>,
69}
70
71#[derive(Serialize, Debug)]
72pub struct Distributions {
73    pub series: Vec<metrics::Distribution>,
74}
75
76#[derive(Serialize, Deserialize, Debug, Clone)]
77pub struct Log {
78    pub message: String,
79    pub level: LogLevel,
80    pub count: u32,
81
82    #[serde(default)]
83    pub stack_trace: Option<String>,
84    #[serde(default)]
85    pub tags: String,
86    #[serde(default)]
87    pub is_sensitive: bool,
88    #[serde(default)]
89    pub is_crash: bool,
90}
91
92#[derive(Serialize, Deserialize, Debug, PartialEq, Eq, Hash, Clone)]
93#[serde(rename_all = "UPPERCASE")]
94#[repr(C)]
95pub enum LogLevel {
96    Error,
97    Warn,
98    Debug,
99}