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}
30
31#[derive(Serialize, Deserialize, Debug, Hash, PartialEq, Eq, Clone)]
32#[repr(C)]
33#[serde(rename_all = "snake_case")]
34pub enum ConfigurationOrigin {
35    EnvVar,
36    Code,
37    DdConfig,
38    RemoteConfig,
39    Default,
40    LocalStableConfig,
41    FleetStableConfig,
42}
43
44#[derive(Serialize, Debug)]
45pub struct AppStarted {
46    pub configuration: Vec<Configuration>,
47}
48
49#[derive(Serialize, Debug)]
50pub struct AppDependenciesLoaded {
51    pub dependencies: Vec<Dependency>,
52}
53
54#[derive(Serialize, Debug)]
55pub struct AppIntegrationsChange {
56    pub integrations: Vec<Integration>,
57}
58
59#[derive(Debug, Serialize)]
60pub struct AppClientConfigurationChange {
61    pub configuration: Vec<Configuration>,
62}
63
64#[derive(Serialize, Debug)]
65pub struct GenerateMetrics {
66    pub series: Vec<metrics::Serie>,
67}
68
69#[derive(Serialize, Debug)]
70pub struct Distributions {
71    pub series: Vec<metrics::Distribution>,
72}
73
74#[derive(Serialize, Deserialize, Debug, Clone)]
75pub struct Log {
76    pub message: String,
77    pub level: LogLevel,
78    pub count: u32,
79
80    #[serde(default)]
81    pub stack_trace: Option<String>,
82    #[serde(default)]
83    pub tags: String,
84    #[serde(default)]
85    pub is_sensitive: bool,
86    #[serde(default)]
87    pub is_crash: bool,
88}
89
90#[derive(Serialize, Deserialize, Debug, PartialEq, Eq, Hash, Clone)]
91#[serde(rename_all = "UPPERCASE")]
92#[repr(C)]
93pub enum LogLevel {
94    Error,
95    Warn,
96    Debug,
97}