MCPcopy Create free account
hub / github.com/rilldata/rill / newMetricsView

Function newMetricsView

runtime/controller_test.go:1288–1381  ·  view source on GitHub ↗
(name, model, parent string, measures, dimensions []any)

Source from the content-addressed store, hash-verified

1286}
1287
1288func newMetricsView(name, model, parent string, measures, dimensions []any) (*runtimev1.MetricsView, *runtimev1.Resource) {
1289 var dimensionsSelector, measuresSelector *runtimev1.FieldSelector
1290 var dims []*runtimev1.MetricsViewSpec_Dimension
1291 var ms []*runtimev1.MetricsViewSpec_Measure
1292 var mdl string
1293 if parent == "" {
1294 ms = make([]*runtimev1.MetricsViewSpec_Measure, len(measures)/2)
1295 dims = make([]*runtimev1.MetricsViewSpec_Dimension, len(dimensions)/2)
1296 mdl = model
1297 } else {
1298 dimensionsSelector = &runtimev1.FieldSelector{Selector: &runtimev1.FieldSelector_All{All: true}}
1299 measuresSelector = &runtimev1.FieldSelector{Selector: &runtimev1.FieldSelector_All{All: true}}
1300 }
1301 metrics := &runtimev1.MetricsView{
1302 Spec: &runtimev1.MetricsViewSpec{
1303 Parent: parent,
1304 Connector: "duckdb",
1305 Model: mdl,
1306 DisplayName: parser.ToDisplayName(name),
1307 Measures: ms,
1308 Dimensions: dims,
1309 ParentDimensions: dimensionsSelector,
1310 ParentMeasures: measuresSelector,
1311 },
1312 State: &runtimev1.MetricsViewState{
1313 ValidSpec: &runtimev1.MetricsViewSpec{
1314 Parent: parent,
1315 Connector: "duckdb",
1316 Table: model,
1317 Model: model,
1318 DisplayName: parser.ToDisplayName(name),
1319 Measures: make([]*runtimev1.MetricsViewSpec_Measure, len(measures)/2),
1320 Dimensions: make([]*runtimev1.MetricsViewSpec_Dimension, len(dimensions)/2),
1321 },
1322 },
1323 }
1324
1325 for i := range len(measures) / 2 {
1326 name := fmt.Sprintf("measure_%d", i)
1327 idx := i * 2
1328 expr := measures[idx].(string)
1329 if parent == "" {
1330 metrics.Spec.Measures[i] = &runtimev1.MetricsViewSpec_Measure{
1331 Name: name,
1332 DisplayName: parser.ToDisplayName(name),
1333 Expression: expr,
1334 Type: runtimev1.MetricsViewSpec_MEASURE_TYPE_SIMPLE,
1335 }
1336 }
1337 metrics.State.ValidSpec.Measures[i] = &runtimev1.MetricsViewSpec_Measure{
1338 Name: name,
1339 DisplayName: parser.ToDisplayName(name),
1340 Expression: expr,
1341 Type: runtimev1.MetricsViewSpec_MEASURE_TYPE_SIMPLE,
1342 DataType: &runtimev1.Type{Code: measures[idx+1].(runtimev1.Type_Code), Nullable: true},
1343 }
1344 }
1345 for i := range len(dimensions) / 2 {

Callers 6

TestInterdependenceFunction · 0.70
TestMetricsViewFunction · 0.70
TestDerivedMetricsViewFunction · 0.70
TestStageChangesFunction · 0.70
TestWatchFunction · 0.70
TestAlertFunction · 0.70

Calls 1

ToDisplayNameFunction · 0.92

Tested by

no test coverage detected