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_SPAN: &str = include_str!("scripts/trace/insert_span.sql");
126const INSERT_TRACE_BAGGAGE: &str = include_str!("scripts/trace/insert_baggage.sql");
127const GET_PAGINATED_TRACES: &str = include_str!("scripts/trace/get_paginated_traces.sql");
128const GET_TRACE_SPANS: &str = include_str!("scripts/trace/get_trace_spans.sql");
129const GET_TRACE_METRICS: &str = include_str!("scripts/trace/get_trace_metrics.sql");
130const GET_TRACE_BAGGAGE: &str = include_str!("scripts/trace/get_trace_baggage.sql");
131const GET_SPANS_BY_TAG: &str = include_str!("scripts/trace/get_spans_from_tags.sql");
132const UPSERT_TRACE: &str = include_str!("scripts/trace/upsert_trace.sql");
133const INSERT_TRACE_ENTITY_TAGS: &str = include_str!("scripts/trace/insert_entity_tags.sql");
134const GET_TRACES_BY_ENTITY: &str = include_str!("scripts/trace/get_traces_by_entity.sql");
135
136// tags
137const INSERT_TAG: &str = include_str!("scripts/tag/insert_tags.sql");
138const GET_TAGS: &str = include_str!("scripts/tag/get_tags.sql");
139const GET_ENTITY_ID_BY_TAG: &str = include_str!("scripts/tag/get_entity_id_by_tags.sql");
140
141// entity
142const GET_ENTITY_ID_FROM_UID: &str = include_str!("scripts/entity/get_id_from_uid.sql");
143const GET_ENTITY_ID_FROM_SPACE_NAME_VERSION_DRIFT_TYPE: &str =
144    include_str!("scripts/entity/get_id_from_space_name_version_drift_type.sql");
145
146#[allow(dead_code)]
147pub enum Queries {
148    GetSpcFeatures,
149    InsertDriftRecord,
150    InsertBinCounts,
151    InsertDriftProfile,
152    InsertDriftAlert,
153    InsertObservabilityRecord,
154    GetPaginatedDriftAlerts,
155    GetBinnedSpcFeatureValues,
156    GetBinnedPsiFeatureBins,
157    GetBinnedMetricValues,
158    GetBinnedObservabilityMetrics,
159    GetSpcFeatureValues,
160    GetDriftTask,
161    GetDriftProfile,
162    UpdateDriftProfileRunDates,
163    UpdateDriftProfileStatus,
164    DeactivateDriftProfiles,
165    UpdateDriftProfile,
166    GetFeatureBinProportions,
167    GetCustomMetricValues,
168    InsertCustomMetricValues,
169
170    InsertCustomMetricValuesBatch,
171    InsertSpcDriftRecordBatch,
172    InsertBinCountsBatch,
173
174    // archive
175    // entities
176    GetBinCountEntities,
177    GetCustomEntities,
178    GetSpcEntities,
179
180    // data
181    GetBinCountDataForArchive,
182    GetCustomDataForArchive,
183    GetSpcDataForArchive,
184
185    // update
186    UpdateBinCountEntities,
187    UpdateCustomEntities,
188    UpdateSpcEntities,
189
190    // user
191    InsertUser,
192    GetUser,
193    UpdateUser,
194    GetUsers,
195    LastAdmin,
196    DeleteUser,
197    UpdateAlertStatus,
198
199    // genai - query
200    GetGenAIEvalRecords,
201    GetPendingGenAIEvalTask,
202    GetPaginatedGenAIEvalRecords,
203    GetPaginatedGenAIEvalWorkflow,
204    GetGenAIEvalTasks,
205    RescheduleGenAIEvalRecord,
206
207    // genai - data
208    GetGenAIWorkflowBinnedMetrics,
209    GetGenAITaskBinnedMetrics,
210    GetGenAIWorkflowValues,
211    GetGenAITaskValues,
212
213    // genai - insert
214    InsertGenAITaskResultsBatch,
215    InsertGenAIWorkflowResult,
216    InsertGenAIEvalRecord,
217
218    // genai - update
219    UpdateGenAIEvalTask,
220
221    // Genai - archive
222    GetGenAIEvalRecordEntitiesForArchive,
223    GetGenAIEvalTaskResultEntitiesForArchive,
224    GetGenAIEvalWorkflowEntitiesForArchive,
225    GetGenAIEvalRecordDataForArchive,
226    GetGenAITaskResultDataForArchive,
227    GetGenAIWorkflowResultDataForArchive,
228
229    UpdateGenAIEvalEntities,
230    UpdateGenAITaskEntities,
231    UpdateGenAIWorkflowEntities,
232
233    // profile
234    GetProfileVersions,
235    ListDriftProfiles,
236
237    //trace
238    InsertTraceSpan,
239    InsertTraceBaggage,
240    GetPaginatedTraces,
241    GetTraceSpans,
242    GetTraceMetrics,
243    GetTraceBaggage,
244    GetSpansByTags,
245    UpsertTrace,
246    InsertTraceEntityTags,
247    GetTracesByEntity,
248
249    // tags
250    InsertTag,
251    GetTags,
252    GetEntityIdByTags,
253
254    // entity
255    GetEntityIdFromUid,
256    GetEntityIdFromSpaceNameVersionDriftType,
257}
258
259impl Queries {
260    // TODO: shouldn't we just return the string directly? Not sure if that's true for all db operations, I'm
261    // just noticing it in the few that im working on. (user related queries)
262    pub fn get_query(&self) -> &'static str {
263        match self {
264            // load sql file from scripts/insert.sql
265            Queries::GetSpcFeatures => GET_SPC_FEATURES,
266            Queries::InsertDriftRecord => INSERT_DRIFT_RECORD,
267            Queries::GetBinnedSpcFeatureValues => GET_BINNED_SPC_FEATURE_VALUES,
268            Queries::GetBinnedPsiFeatureBins => GET_BINNED_PSI_FEATURE_BINS,
269            Queries::GetBinnedMetricValues => GET_BINNED_CUSTOM_METRIC_VALUES,
270            Queries::GetBinnedObservabilityMetrics => GET_BINNED_OBSERVABILITY_METRICS,
271            Queries::GetSpcFeatureValues => GET_SPC_FEATURE_VALUES,
272            Queries::InsertDriftProfile => INSERT_DRIFT_PROFILE,
273            Queries::InsertDriftAlert => INSERT_DRIFT_ALERT,
274            Queries::InsertObservabilityRecord => INSERT_OBSERVABILITY_RECORD,
275            Queries::GetPaginatedDriftAlerts => GET_PAGINATED_DRIFT_ALERTS,
276            Queries::GetDriftTask => GET_DRIFT_TASK,
277            Queries::UpdateDriftProfileRunDates => UPDATE_DRIFT_PROFILE_RUN_DATES,
278            Queries::UpdateDriftProfileStatus => UPDATE_DRIFT_PROFILE_STATUS,
279            Queries::UpdateDriftProfile => UPDATE_DRIFT_PROFILE,
280            Queries::DeactivateDriftProfiles => DEACTIVATE_DRIFT_PROFILES,
281            Queries::GetDriftProfile => GET_DRIFT_PROFILE,
282            Queries::GetFeatureBinProportions => GET_FEATURE_BIN_PROPORTIONS,
283            Queries::InsertBinCounts => INSERT_BIN_COUNTS,
284            Queries::GetCustomMetricValues => GET_CUSTOM_METRIC_VALUES,
285            Queries::InsertCustomMetricValues => INSERT_CUSTOM_METRIC_VALUES,
286            Queries::GetBinCountEntities => GET_BIN_COUNT_ENTITIES,
287            Queries::GetCustomEntities => GET_CUSTOM_ENTITIES,
288            Queries::GetSpcEntities => GET_SPC_ENTITIES,
289            Queries::GetBinCountDataForArchive => GET_BIN_COUNT_DATA_FOR_ARCHIVE,
290            Queries::GetCustomDataForArchive => GET_CUSTOM_DATA_FOR_ARCHIVE,
291            Queries::GetSpcDataForArchive => GET_SPC_DATA_FOR_ARCHIVE,
292            Queries::UpdateBinCountEntities => UPDATE_BIN_COUNT_ENTITIES,
293            Queries::UpdateCustomEntities => UPDATE_CUSTOM_ENTITIES,
294            Queries::UpdateSpcEntities => UPDATE_SPC_ENTITIES,
295            Queries::GetProfileVersions => GET_PROFILE_VERSIONS,
296            Queries::ListDriftProfiles => LIST_DRIFT_PROFILES,
297            Queries::InsertUser => INSERT_USER,
298            Queries::GetUser => GET_USER,
299            Queries::UpdateUser => UPDATE_USER,
300            Queries::GetUsers => GET_USERS,
301            Queries::LastAdmin => LAST_ADMIN,
302            Queries::DeleteUser => DELETE_USER,
303            Queries::UpdateAlertStatus => UPDATE_ALERT_STATUS,
304
305            //genai - data
306            Queries::GetGenAIWorkflowBinnedMetrics => GET_BINNED_GENAI_WORKFLOW_VALUES,
307            Queries::GetGenAITaskBinnedMetrics => GET_BINNED_GENAI_TASK_VALUES,
308            Queries::GetGenAIWorkflowValues => GET_GENAI_WORKFLOW_VALUES,
309            Queries::GetGenAITaskValues => GET_GENAI_TASK_VALUES,
310
311            //genai - insert
312            Queries::InsertGenAITaskResultsBatch => INSERT_GENAI_TASK_RESULTS_BATCH,
313            Queries::InsertGenAIWorkflowResult => INSERT_GENAI_WORKFLOW_RESULT,
314            Queries::InsertGenAIEvalRecord => INSERT_GENAI_EVAL_RECORD,
315
316            Queries::GetGenAIEvalRecords => GET_GENAI_EVAL_RECORDS,
317            Queries::GetPaginatedGenAIEvalRecords => GET_PAGINATED_GENAI_EVAL_RECORDS,
318            Queries::GetPaginatedGenAIEvalWorkflow => GET_PAGINATED_GENAI_EVAL_WORKFLOW,
319            Queries::GetPendingGenAIEvalTask => GET_PENDING_GENAI_EVAL_TASK,
320            Queries::GetGenAIEvalTasks => GET_GENAI_EVAL_TASKS,
321            Queries::RescheduleGenAIEvalRecord => RESCHEDULE_GENAI_EVAL_RECORD,
322
323            Queries::GetGenAIEvalRecordEntitiesForArchive => GET_GENAI_EVAL_RECORD_ENTITIES,
324            Queries::GetGenAIEvalRecordDataForArchive => GET_GENAI_EVAL_RECORD_DATA_FOR_ARCHIVE,
325            Queries::UpdateGenAIEvalEntities => UPDATE_GENAI_EVAL_ENTITIES,
326
327            Queries::GetGenAIEvalTaskResultEntitiesForArchive => GET_GENAI_TASK_RECORD_ENTITIES,
328            Queries::GetGenAITaskResultDataForArchive => GET_GENAI_TASK_DATA_FOR_ARCHIVE,
329            Queries::UpdateGenAITaskEntities => UPDATE_GENAI_TASK_ENTITIES,
330
331            Queries::GetGenAIEvalWorkflowEntitiesForArchive => GET_GENAI_WORKFLOW_ENTITIES,
332            Queries::GetGenAIWorkflowResultDataForArchive => GET_GENAI_WORKFLOW_DATA_FOR_ARCHIVE,
333            Queries::UpdateGenAIWorkflowEntities => UPDATE_GENAI_WORKFLOW_ENTITIES,
334
335            Queries::UpdateGenAIEvalTask => UPDATE_GENAI_EVAL_TASK,
336
337            Queries::InsertCustomMetricValuesBatch => INSERT_CUSTOM_METRIC_VALUES_BATCH,
338            Queries::InsertSpcDriftRecordBatch => INSERT_SPC_DRIFT_RECORD_BATCH,
339            Queries::InsertBinCountsBatch => INSERT_BIN_COUNTS_BATCH,
340
341            // trace
342            Queries::InsertTraceSpan => INSERT_TRACE_SPAN,
343            Queries::InsertTraceBaggage => INSERT_TRACE_BAGGAGE,
344            Queries::GetPaginatedTraces => GET_PAGINATED_TRACES,
345            Queries::GetTraceSpans => GET_TRACE_SPANS,
346            Queries::GetTraceMetrics => GET_TRACE_METRICS,
347            Queries::GetTraceBaggage => GET_TRACE_BAGGAGE,
348            Queries::GetSpansByTags => GET_SPANS_BY_TAG,
349            Queries::UpsertTrace => UPSERT_TRACE,
350            Queries::InsertTraceEntityTags => INSERT_TRACE_ENTITY_TAGS,
351            Queries::GetTracesByEntity => GET_TRACES_BY_ENTITY,
352
353            // tags
354            Queries::InsertTag => INSERT_TAG,
355            Queries::GetTags => GET_TAGS,
356            Queries::GetEntityIdByTags => GET_ENTITY_ID_BY_TAG,
357            // entity
358            Queries::GetEntityIdFromUid => GET_ENTITY_ID_FROM_UID,
359            Queries::GetEntityIdFromSpaceNameVersionDriftType => {
360                GET_ENTITY_ID_FROM_SPACE_NAME_VERSION_DRIFT_TYPE
361            }
362        }
363    }
364}