pkg/graphql/utils/parser.go (35 lines of code) (raw):

// Licensed to Apache Software Foundation (ASF) under one or more contributor // license agreements. See the NOTICE file distributed with // this work for additional information regarding copyright // ownership. Apache Software Foundation (ASF) licenses this file to you under // the Apache License, Version 2.0 (the "License"); you may // not use this file except in compliance with the License. // You may obtain a copy of the License at // // http://www.apache.org/licenses/LICENSE-2.0 // // Unless required by applicable law or agreed to in writing, // software distributed under the License is distributed on an // "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY // KIND, either express or implied. See the License for the // specific language governing permissions and limitations // under the License. package utils import ( api "skywalking.apache.org/repo/goapi/query" "strings" ) // ParseScope defines the scope based on the input parameters. func ParseScope(entity *api.Entity) *api.Scope { scope := api.ScopeAll if *entity.DestProcessName != "" { scope = api.ScopeProcessRelation } else if *entity.DestEndpointName != "" { scope = api.ScopeEndpointRelation } else if *entity.DestServiceInstanceName != "" { scope = api.ScopeServiceInstanceRelation } else if *entity.DestServiceName != "" { scope = api.ScopeServiceRelation } else if *entity.EndpointName != "" { scope = api.ScopeEndpoint } else if *entity.ProcessName != "" { scope = api.ScopeProcess } else if *entity.ServiceInstanceName != "" { scope = api.ScopeServiceInstance } else if *entity.ServiceName != "" { scope = api.ScopeService } return &scope } // ParseScopeInTop defines the scope based on the metrics' name. // The scope can only be `Service` or `ServiceInstance` or `Endpoint`. func ParseScopeInTop(metricsName string) api.Scope { scope := api.ScopeService if strings.HasPrefix(metricsName, "service_instance") { scope = api.ScopeServiceInstance } else if strings.HasPrefix(metricsName, "endpoint") { scope = api.ScopeEndpoint } return scope }