ConvertExpressionToMetricsSQL implements QueryService.
(ctx context.Context, req *runtimev1.ConvertExpressionToMetricsSQLRequest)
| 726 | |
| 727 | // ConvertExpressionToMetricsSQL implements QueryService. |
| 728 | func (s *Server) ConvertExpressionToMetricsSQL(ctx context.Context, req *runtimev1.ConvertExpressionToMetricsSQLRequest) (*runtimev1.ConvertExpressionToMetricsSQLResponse, error) { |
| 729 | observability.AddRequestAttributes(ctx, |
| 730 | attribute.String("args.instance_id", req.InstanceId), |
| 731 | ) |
| 732 | |
| 733 | s.addInstanceRequestAttributes(ctx, req.InstanceId) |
| 734 | |
| 735 | claims := auth.GetClaims(ctx, req.InstanceId) |
| 736 | if !claims.Can(runtime.ReadMetrics) { |
| 737 | return nil, ErrForbidden |
| 738 | } |
| 739 | |
| 740 | expr := metricsview.NewExpressionFromProto(req.Expression) |
| 741 | sql, err := metricsview.ExpressionToSQL(expr) |
| 742 | if err != nil { |
| 743 | return nil, err |
| 744 | } |
| 745 | |
| 746 | return &runtimev1.ConvertExpressionToMetricsSQLResponse{ |
| 747 | Sql: sql, |
| 748 | }, nil |
| 749 | } |
| 750 | |
| 751 | func resolveMVAndSecurity(ctx context.Context, rt *runtime.Runtime, instanceID, metricsViewName string) (*runtimev1.MetricsViewState, *runtime.ResolvedSecurity, error) { |
| 752 | res, mv, err := lookupMetricsView(ctx, rt, instanceID, metricsViewName) |
nothing calls this directly
no test coverage detected