All Downloads are FREE. Search and download functionalities are using the official Maven repository.

query-protocol.metrics-v3.graphqls Maven / Gradle / Ivy

There is a newer version: 10.1.0
Show newest version
# Licensed to the 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.  The 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.

# SkyWalking Metrics Query Expression(MQE) is an extension query mechanism.
# MQE allows users to do simple query-stage calculation like well known PromQL.

input Entity {
    # Deprecated from 9.4.0
    # Scope could be sensed automatically through given metric name.
    scope: Scope
    # 1. metrics Scope=Service, ServiceInstance and Endpoint, set necessary serviceName/serviceInstanceName/endpointName
    # 2. metrics Scope=ServiceRelation, ServiceInstanceRelation, EndpointRelation and ProcessRelation
    #    serviceName/serviceInstanceName/endpointName/processName is/are the source(s)
    #    destServiceName/destServiceInstanceName/destEndpointName/destProcessName is/are destination(s)
    #    set necessary names of sources and destinations.
    serviceName: String
    # Normal service is the service having installed agent or metrics reported directly.
    # Unnormal service is conjectural service, usually detected by the agent.
    normal: Boolean
    serviceInstanceName: String
    endpointName: String
    processName: String
    destServiceName: String
    # Normal service is the service having installed agent or metrics reported directly.
    # Unnormal service is conjectural service, usually detected by the agent.
    destNormal: Boolean
    destServiceInstanceName: String
    destEndpointName: String
    destProcessName: String
}

enum ExpressionResultType {
    # Can't resolve the type of the given expression.
    UNKNOWN
    # A single value
    SINGLE_VALUE
    # A collection of time-series values.
    # The value could have labels or not.
    TIME_SERIES_VALUES
    # A collection of aggregated values through metric sort function
    SORTED_LIST
    # A collection of sampled records.
    # When the original metric type is sampled records
    RECORD_LIST
}

type MQEValue {
    # Timestamp or name of the entity or record. It could be NULL if it is the result of an aggregate calculation.
    id: ID
    # Value is formatted double/int or NULL if the value is absent.
    value: String
    # Sampled record could associate with a trace.
    # This would be a trace ID only.
    traceID: ID
}

type MQEValues {
    # The metadata description of this value series. It could be NULL if it is the result of the different metrics calculation.
    metric: Metadata
    # 1. When the type == SINGLE_VALUE, values only have one value.
    # 2. When the type == TIME_SERIES_VALUES, values would match the given elements in the duration range.
    # 3. When the type == SORTED_LIST, values could be results of `sort(metric)`
    # 4. When the type == RECORD_LIST, values could be sampled records
    values: [MQEValue!]!
}

type Metadata {
    # Key-value pairs to describe the metric
    labels: [KeyValue!]!
}

type ExpressionResult {
    type: ExpressionResultType!
    # When the type == TIME_SERIES_VALUES or SINGLE_VALUE, the results would be a collection of MQEValues according to the metric labels.
    # In other legal type cases, only one MQEValues is expected in the array.
    results: [MQEValues!]!
    # When type == ExpressionResultType.UNKNOWN,
    # the error message includes the expression resolving errors.
    error: String
}


extend type Query {
    # Metrics definition metadata query. Response the metrics type which determines the suitable query methods.
    typeOfMetrics(name: String!): MetricsType!
    # Get the list of all available metrics in the current OAP server.
    # Param, regex, could be used to filter the metrics by name.
    listMetrics(regex: String): [MetricDefinition!]!
    execExpression(expression: String!, entity: Entity!, duration: Duration!): ExpressionResult!
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy