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