Skip to main content

scouter_sql/sql/
query.rs

1//constants
2
3// spc
4const INSERT_DRIFT_RECORD: &str = include_str!("scripts/spc/insert_spc_drift_record.sql");
5const INSERT_SPC_DRIFT_RECORD_BATCH: &str =
6    include_str!("scripts/spc/insert_spc_drift_record_batch.sql");
7const GET_SPC_FEATURES: &str = include_str!("scripts/spc/unique_spc_features.sql");
8const GET_BINNED_SPC_FEATURE_VALUES: &str =
9    include_str!("scripts/spc/binned_spc_feature_values.sql");
10const GET_SPC_FEATURE_VALUES: &str = include_str!("scripts/spc/get_spc_feature_values.sql");
11const GET_SPC_ENTITIES: &str = include_str!("scripts/spc/get_spc_entities_for_archive.sql");
12const GET_SPC_DATA_FOR_ARCHIVE: &str = include_str!("scripts/spc/get_spc_data_for_archive.sql");
13const UPDATE_SPC_ENTITIES: &str = include_str!("scripts/spc/update_data_to_archived.sql");
14
15// psi
16const INSERT_BIN_COUNTS: &str = include_str!("scripts/psi/insert_bin_counts.sql");
17const INSERT_BIN_COUNTS_BATCH: &str = include_str!("scripts/psi/insert_bin_counts_batch.sql");
18const GET_BINNED_PSI_FEATURE_BINS: &str =
19    include_str!("scripts/psi/binned_psi_feature_bin_proportions.sql");
20const GET_FEATURE_BIN_PROPORTIONS: &str =
21    include_str!("scripts/psi/get_feature_bin_proportions.sql");
22const GET_BIN_COUNT_ENTITIES: &str =
23    include_str!("scripts/psi/get_bin_count_entities_for_archive.sql");
24const GET_BIN_COUNT_DATA_FOR_ARCHIVE: &str =
25    include_str!("scripts/psi/get_bin_count_data_for_archive.sql");
26const UPDATE_BIN_COUNT_ENTITIES: &str = include_str!("scripts/psi/update_data_to_archived.sql");
27
28// custom
29const GET_BINNED_CUSTOM_METRIC_VALUES: &str =
30    include_str!("scripts/custom/binned_custom_metric_values.sql");
31const GET_CUSTOM_METRIC_VALUES: &str = include_str!("scripts/custom/get_custom_metric_values.sql");
32const INSERT_CUSTOM_METRIC_VALUES: &str =
33    include_str!("scripts/custom/insert_custom_metric_values.sql");
34const INSERT_CUSTOM_METRIC_VALUES_BATCH: &str =
35    include_str!("scripts/custom/insert_custom_metric_values_batch.sql");
36const GET_CUSTOM_ENTITIES: &str =
37    include_str!("scripts/custom/get_custom_metric_entities_for_archive.sql");
38const GET_CUSTOM_DATA_FOR_ARCHIVE: &str =
39    include_str!("scripts/custom/get_custom_metric_data_for_archive.sql");
40const UPDATE_CUSTOM_ENTITIES: &str = include_str!("scripts/custom/update_data_to_archived.sql");
41
42// genai
43// genai insert
44const INSERT_GENAI_TASK_RESULTS_BATCH: &str = include_str!("scripts/genai/insert_task_results.sql");
45const INSERT_GENAI_WORKFLOW_RESULT: &str = include_str!("scripts/genai/insert_workflow_result.sql");
46const INSERT_GENAI_EVAL_RECORD: &str = include_str!("scripts/genai/insert_eval_record.sql");
47
48// genai query
49const GET_GENAI_EVAL_RECORDS: &str = include_str!("scripts/genai/get_eval_records.sql");
50const GET_GENAI_EVAL_TASKS: &str = include_str!("scripts/genai/get_eval_tasks.sql");
51const GET_GENAI_TASK_VALUES: &str = include_str!("scripts/genai/data/get_task_values.sql");
52const GET_GENAI_WORKFLOW_VALUES: &str = include_str!("scripts/genai/data/get_workflow_values.sql");
53const GET_BINNED_GENAI_WORKFLOW_VALUES: &str =
54    include_str!("scripts/genai/data/get_binned_workflow_values.sql");
55const GET_BINNED_GENAI_TASK_VALUES: &str =
56    include_str!("scripts/genai/data/get_binned_task_values.sql");
57const RESCHEDULE_GENAI_EVAL_RECORD: &str =
58    include_str!("scripts/genai/reschedule_genai_record.sql");
59
60// genai paginated query
61const GET_PAGINATED_GENAI_EVAL_RECORDS: &str =
62    include_str!("scripts/genai/get_paginated_eval_records.sql");
63const GET_PAGINATED_GENAI_EVAL_WORKFLOW: &str =
64    include_str!("scripts/genai/get_paginated_eval_workflow.sql");
65const UPDATE_GENAI_EVAL_TASK: &str = include_str!("scripts/genai/update_eval_record.sql");
66
67// Archive data
68const GET_GENAI_TASK_DATA_FOR_ARCHIVE: &str =
69    include_str!("scripts/genai/archive/get_task_data_for_archive.sql");
70const GET_GENAI_EVAL_RECORD_DATA_FOR_ARCHIVE: &str =
71    include_str!("scripts/genai/archive/get_eval_record_data_for_archive.sql");
72const GET_GENAI_WORKFLOW_DATA_FOR_ARCHIVE: &str =
73    include_str!("scripts/genai/archive/get_workflow_data_for_archive.sql");
74const GET_GENAI_EVAL_RECORD_ENTITIES: &str =
75    include_str!("scripts/genai/archive/get_eval_record_entities_for_archive.sql");
76const GET_GENAI_TASK_RECORD_ENTITIES: &str =
77    include_str!("scripts/genai/archive/get_task_entities_for_archive.sql");
78const GET_GENAI_WORKFLOW_ENTITIES: &str =
79    include_str!("scripts/genai/archive/get_workflow_entities_for_archive.sql");
80// genai update entities
81const UPDATE_GENAI_TASK_ENTITIES: &str =
82    include_str!("scripts/genai/archive/update_task_to_archived.sql");
83const UPDATE_GENAI_WORKFLOW_ENTITIES: &str =
84    include_str!("scripts/genai/archive/update_workflow_to_archived.sql");
85const UPDATE_GENAI_EVAL_ENTITIES: &str =
86    include_str!("scripts/genai/archive/update_eval_record_to_archived.sql");
87
88// observability (experimental)
89const GET_BINNED_OBSERVABILITY_METRICS: &str =
90    include_str!("scripts/observability/binned_observability_metrics.sql");
91const INSERT_OBSERVABILITY_RECORD: &str =
92    include_str!("scripts/observability/insert_observability_record.sql");
93
94//profile
95const INSERT_DRIFT_PROFILE: &str = include_str!("scripts/profile/insert_drift_profile.sql");
96const GET_DRIFT_PROFILE: &str = include_str!("scripts/profile/get_drift_profile.sql");
97const UPDATE_DRIFT_PROFILE_RUN_DATES: &str =
98    include_str!("scripts/profile/update_drift_profile_run_dates.sql");
99const UPDATE_DRIFT_PROFILE_STATUS: &str =
100    include_str!("scripts/profile/update_drift_profile_status.sql");
101const UPDATE_DRIFT_PROFILE: &str = include_str!("scripts/profile/update_drift_profile.sql");
102const DEACTIVATE_DRIFT_PROFILES: &str =
103    include_str!("scripts/profile/deactivate_drift_profiles.sql");
104const GET_PROFILE_VERSIONS: &str = include_str!("scripts/profile/get_profile_versions.sql");
105const LIST_DRIFT_PROFILES: &str = include_str!("scripts/profile/list_drift_profiles.sql");
106
107// alert
108const INSERT_DRIFT_ALERT: &str = include_str!("scripts/alert/insert_drift_alert.sql");
109const GET_PAGINATED_DRIFT_ALERTS: &str = include_str!("scripts/alert/get_drift_alerts.sql");
110const UPDATE_ALERT_STATUS: &str = include_str!("scripts/alert/update_alert_status.sql");
111
112// poll
113const GET_DRIFT_TASK: &str = include_str!("scripts/poll/poll_for_drift_task.sql");
114const GET_PENDING_GENAI_EVAL_TASK: &str = include_str!("scripts/poll/poll_for_genai_eval_task.sql");
115
116// auth
117const INSERT_USER: &str = include_str!("scripts/user/insert_user.sql");
118const GET_USER: &str = include_str!("scripts/user/get_user.sql");
119const UPDATE_USER: &str = include_str!("scripts/user/update_user.sql");
120const GET_USERS: &str = include_str!("scripts/user/get_users.sql");
121const LAST_ADMIN: &str = include_str!("scripts/user/last_admin.sql");
122const DELETE_USER: &str = include_str!("scripts/user/delete_user.sql");
123
124// trace
125const INSERT_TRACE_BAGGAGE: &str = include_str!("scripts/trace/insert_baggage.sql");
126const GET_TRACE_BAGGAGE: &str = include_str!("scripts/trace/get_trace_baggage.sql");
127const GET_SPANS_BY_TAG: &str = include_str!("scripts/trace/get_spans_from_tags.sql");
128const UPSERT_TRACE: &str = include_str!("scripts/trace/upsert_trace.sql");
129const INSERT_TRACE_ENTITY_TAGS: &str = include_str!("scripts/trace/insert_entity_tags.sql");
130const GET_TRACES_BY_ENTITY: &str = include_str!("scripts/trace/get_traces_by_entity.sql");
131
132// tags
133const INSERT_TAG: &str = include_str!("scripts/tag/insert_tags.sql");
134const GET_TAGS: &str = include_str!("scripts/tag/get_tags.sql");
135const GET_ENTITY_ID_BY_TAG: &str = include_str!("scripts/tag/get_entity_id_by_tags.sql");
136
137// entity
138const GET_ENTITY_ID_FROM_UID: &str = include_str!("scripts/entity/get_id_from_uid.sql");
139const GET_ENTITY_ID_FROM_SPACE_NAME_VERSION_DRIFT_TYPE: &str =
140    include_str!("scripts/entity/get_id_from_space_name_version_drift_type.sql");
141
142#[allow(dead_code)]
143pub enum Queries {
144    GetSpcFeatures,
145    InsertDriftRecord,
146    InsertBinCounts,
147    InsertDriftProfile,
148    InsertDriftAlert,
149    InsertObservabilityRecord,
150    GetPaginatedDriftAlerts,
151    GetBinnedSpcFeatureValues,
152    GetBinnedPsiFeatureBins,
153    GetBinnedMetricValues,
154    GetBinnedObservabilityMetrics,
155    GetSpcFeatureValues,
156    GetDriftTask,
157    GetDriftProfile,
158    UpdateDriftProfileRunDates,
159    UpdateDriftProfileStatus,
160    DeactivateDriftProfiles,
161    UpdateDriftProfile,
162    GetFeatureBinProportions,
163    GetCustomMetricValues,
164    InsertCustomMetricValues,
165
166    InsertCustomMetricValuesBatch,
167    InsertSpcDriftRecordBatch,
168    InsertBinCountsBatch,
169
170    // archive
171    // entities
172    GetBinCountEntities,
173    GetCustomEntities,
174    GetSpcEntities,
175
176    // data
177    GetBinCountDataForArchive,
178    GetCustomDataForArchive,
179    GetSpcDataForArchive,
180
181    // update
182    UpdateBinCountEntities,
183    UpdateCustomEntities,
184    UpdateSpcEntities,
185
186    // user
187    InsertUser,
188    GetUser,
189    UpdateUser,
190    GetUsers,
191    LastAdmin,
192    DeleteUser,
193    UpdateAlertStatus,
194
195    // genai - query
196    GetEvalRecords,
197    GetPendingGenAIEvalTask,
198    GetPaginatedEvalRecords,
199    GetPaginatedGenAIEvalWorkflow,
200    GetGenAIEvalTasks,
201    RescheduleEvalRecord,
202
203    // genai - data
204    GetGenAIWorkflowBinnedMetrics,
205    GetGenAITaskBinnedMetrics,
206    GetGenAIWorkflowValues,
207    GetGenAITaskValues,
208
209    // genai - insert
210    InsertGenAITaskResultsBatch,
211    InsertGenAIWorkflowResult,
212    InsertEvalRecord,
213
214    // genai - update
215    UpdateGenAIEvalTask,
216
217    // Genai - archive
218    GetEvalRecordEntitiesForArchive,
219    GetGenAIEvalTaskResultEntitiesForArchive,
220    GetGenAIEvalWorkflowEntitiesForArchive,
221    GetEvalRecordDataForArchive,
222    GetGenAITaskResultDataForArchive,
223    GetGenAIWorkflowResultDataForArchive,
224
225    UpdateGenAIEvalEntities,
226    UpdateGenAITaskEntities,
227    UpdateGenAIWorkflowEntities,
228
229    // profile
230    GetProfileVersions,
231    ListDriftProfiles,
232
233    //trace
234    InsertTraceBaggage,
235    GetTraceBaggage,
236    GetSpansByTags,
237    UpsertTrace,
238    InsertTraceEntityTags,
239    GetTracesByEntity,
240
241    // tags
242    InsertTag,
243    GetTags,
244    GetEntityIdByTags,
245
246    // entity
247    GetEntityIdFromUid,
248    GetEntityIdFromSpaceNameVersionDriftType,
249}
250
251impl Queries {
252    // TODO: shouldn't we just return the string directly? Not sure if that's true for all db operations, I'm
253    // just noticing it in the few that im working on. (user related queries)
254    pub fn get_query(&self) -> &'static str {
255        match self {
256            // load sql file from scripts/insert.sql
257            Queries::GetSpcFeatures => GET_SPC_FEATURES,
258            Queries::InsertDriftRecord => INSERT_DRIFT_RECORD,
259            Queries::GetBinnedSpcFeatureValues => GET_BINNED_SPC_FEATURE_VALUES,
260            Queries::GetBinnedPsiFeatureBins => GET_BINNED_PSI_FEATURE_BINS,
261            Queries::GetBinnedMetricValues => GET_BINNED_CUSTOM_METRIC_VALUES,
262            Queries::GetBinnedObservabilityMetrics => GET_BINNED_OBSERVABILITY_METRICS,
263            Queries::GetSpcFeatureValues => GET_SPC_FEATURE_VALUES,
264            Queries::InsertDriftProfile => INSERT_DRIFT_PROFILE,
265            Queries::InsertDriftAlert => INSERT_DRIFT_ALERT,
266            Queries::InsertObservabilityRecord => INSERT_OBSERVABILITY_RECORD,
267            Queries::GetPaginatedDriftAlerts => GET_PAGINATED_DRIFT_ALERTS,
268            Queries::GetDriftTask => GET_DRIFT_TASK,
269            Queries::UpdateDriftProfileRunDates => UPDATE_DRIFT_PROFILE_RUN_DATES,
270            Queries::UpdateDriftProfileStatus => UPDATE_DRIFT_PROFILE_STATUS,
271            Queries::UpdateDriftProfile => UPDATE_DRIFT_PROFILE,
272            Queries::DeactivateDriftProfiles => DEACTIVATE_DRIFT_PROFILES,
273            Queries::GetDriftProfile => GET_DRIFT_PROFILE,
274            Queries::GetFeatureBinProportions => GET_FEATURE_BIN_PROPORTIONS,
275            Queries::InsertBinCounts => INSERT_BIN_COUNTS,
276            Queries::GetCustomMetricValues => GET_CUSTOM_METRIC_VALUES,
277            Queries::InsertCustomMetricValues => INSERT_CUSTOM_METRIC_VALUES,
278            Queries::GetBinCountEntities => GET_BIN_COUNT_ENTITIES,
279            Queries::GetCustomEntities => GET_CUSTOM_ENTITIES,
280            Queries::GetSpcEntities => GET_SPC_ENTITIES,
281            Queries::GetBinCountDataForArchive => GET_BIN_COUNT_DATA_FOR_ARCHIVE,
282            Queries::GetCustomDataForArchive => GET_CUSTOM_DATA_FOR_ARCHIVE,
283            Queries::GetSpcDataForArchive => GET_SPC_DATA_FOR_ARCHIVE,
284            Queries::UpdateBinCountEntities => UPDATE_BIN_COUNT_ENTITIES,
285            Queries::UpdateCustomEntities => UPDATE_CUSTOM_ENTITIES,
286            Queries::UpdateSpcEntities => UPDATE_SPC_ENTITIES,
287            Queries::GetProfileVersions => GET_PROFILE_VERSIONS,
288            Queries::ListDriftProfiles => LIST_DRIFT_PROFILES,
289            Queries::InsertUser => INSERT_USER,
290            Queries::GetUser => GET_USER,
291            Queries::UpdateUser => UPDATE_USER,
292            Queries::GetUsers => GET_USERS,
293            Queries::LastAdmin => LAST_ADMIN,
294            Queries::DeleteUser => DELETE_USER,
295            Queries::UpdateAlertStatus => UPDATE_ALERT_STATUS,
296
297            //genai - data
298            Queries::GetGenAIWorkflowBinnedMetrics => GET_BINNED_GENAI_WORKFLOW_VALUES,
299            Queries::GetGenAITaskBinnedMetrics => GET_BINNED_GENAI_TASK_VALUES,
300            Queries::GetGenAIWorkflowValues => GET_GENAI_WORKFLOW_VALUES,
301            Queries::GetGenAITaskValues => GET_GENAI_TASK_VALUES,
302
303            //genai - insert
304            Queries::InsertGenAITaskResultsBatch => INSERT_GENAI_TASK_RESULTS_BATCH,
305            Queries::InsertGenAIWorkflowResult => INSERT_GENAI_WORKFLOW_RESULT,
306            Queries::InsertEvalRecord => INSERT_GENAI_EVAL_RECORD,
307
308            Queries::GetEvalRecords => GET_GENAI_EVAL_RECORDS,
309            Queries::GetPaginatedEvalRecords => GET_PAGINATED_GENAI_EVAL_RECORDS,
310            Queries::GetPaginatedGenAIEvalWorkflow => GET_PAGINATED_GENAI_EVAL_WORKFLOW,
311            Queries::GetPendingGenAIEvalTask => GET_PENDING_GENAI_EVAL_TASK,
312            Queries::GetGenAIEvalTasks => GET_GENAI_EVAL_TASKS,
313            Queries::RescheduleEvalRecord => RESCHEDULE_GENAI_EVAL_RECORD,
314
315            Queries::GetEvalRecordEntitiesForArchive => GET_GENAI_EVAL_RECORD_ENTITIES,
316            Queries::GetEvalRecordDataForArchive => GET_GENAI_EVAL_RECORD_DATA_FOR_ARCHIVE,
317            Queries::UpdateGenAIEvalEntities => UPDATE_GENAI_EVAL_ENTITIES,
318
319            Queries::GetGenAIEvalTaskResultEntitiesForArchive => GET_GENAI_TASK_RECORD_ENTITIES,
320            Queries::GetGenAITaskResultDataForArchive => GET_GENAI_TASK_DATA_FOR_ARCHIVE,
321            Queries::UpdateGenAITaskEntities => UPDATE_GENAI_TASK_ENTITIES,
322
323            Queries::GetGenAIEvalWorkflowEntitiesForArchive => GET_GENAI_WORKFLOW_ENTITIES,
324            Queries::GetGenAIWorkflowResultDataForArchive => GET_GENAI_WORKFLOW_DATA_FOR_ARCHIVE,
325            Queries::UpdateGenAIWorkflowEntities => UPDATE_GENAI_WORKFLOW_ENTITIES,
326
327            Queries::UpdateGenAIEvalTask => UPDATE_GENAI_EVAL_TASK,
328
329            Queries::InsertCustomMetricValuesBatch => INSERT_CUSTOM_METRIC_VALUES_BATCH,
330            Queries::InsertSpcDriftRecordBatch => INSERT_SPC_DRIFT_RECORD_BATCH,
331            Queries::InsertBinCountsBatch => INSERT_BIN_COUNTS_BATCH,
332
333            // trace
334            Queries::InsertTraceBaggage => INSERT_TRACE_BAGGAGE,
335            Queries::GetTraceBaggage => GET_TRACE_BAGGAGE,
336            Queries::GetSpansByTags => GET_SPANS_BY_TAG,
337            Queries::UpsertTrace => UPSERT_TRACE,
338            Queries::InsertTraceEntityTags => INSERT_TRACE_ENTITY_TAGS,
339            Queries::GetTracesByEntity => GET_TRACES_BY_ENTITY,
340
341            // tags
342            Queries::InsertTag => INSERT_TAG,
343            Queries::GetTags => GET_TAGS,
344            Queries::GetEntityIdByTags => GET_ENTITY_ID_BY_TAG,
345            // entity
346            Queries::GetEntityIdFromUid => GET_ENTITY_ID_FROM_UID,
347            Queries::GetEntityIdFromSpaceNameVersionDriftType => {
348                GET_ENTITY_ID_FROM_SPACE_NAME_VERSION_DRIFT_TYPE
349            }
350        }
351    }
352}