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