Skywalking-10:Skywalking查询协议——GraphQL

GraphQL

GraphQL 基础

参照Getting started with GraphQL Java and Spring Boot这篇文章学习即可

PS:可以使用 brew install --cask graphql-playground 安装 graphql for mac 客户端。

IDEA 怎么调试 GraphQL 应用

安装 JS GraphQL 插件

点击JS GraphQL安装插件

GraphQL 定义

schema.graphqls

type Query {
    bookById(id: ID): Book
}

type Book {
    id: ID
    name: String
    pageCount: Int
    author: Author
}

type Author {
    id: ID
    firstName: String
    lastName: String
}

GraphQL 配置文件

.graphqlconfig

{
  "name": "book-details",
  "schemaPath": "schema.graphqls",
  "extensions": {
    "endpoints": {
      "Default GraphQL Endpoint": {
        "url": "http://localhost:8080/graphql", // 请求路径
        "headers": {
          "user-agent": "JS GraphQL"
        },
        "introspect": false
      }
    }
  }
}

创建一个查询文件

query.graphql

{"id": "book-1"}
query queryData($id: ID) {
    bookById(id: $id) {
        id name pageCount author {
            id firstName lastName
        }
    }
}

GraphQL 脚本目录结构

resources
├── .graphqlconfig  # 配置文件
├── query.graphql   # 查询文件
└── schema.graphqls # 定义文件

执行结果

Skywalking-10:Skywalking查询协议——GraphQL

Skywalking-10:Skywalking查询协议——GraphQL

GraphQLSkywalking 中的应用

graphql 协议文件路径: oap-server/server-query-plugin/query-graphql-plugin/src/main/resources/query-protocol

GraphQL 配置文件

.graphqlconfig

{
  "name": "skywalking",
  "schemaPath": "schema.graphql",
  "extensions": {
    "endpoints": {
      "Default GraphQL Endpoint": {
        "url": "http://localhost:8080/graphql",
        "headers": {
          "user-agent": "JS GraphQL"
        },
        "introspect": true
      }
    }
  }
}

创建一个查询文件

query.graphql

query queryData {
    readMetricsValues(
        duration: {start: "2021-07-03 1400",end: "2021-07-03 1401", step: MINUTE},
        condition: {
            name: "instance_jvm_thread_runnable_thread_count",
            entity: {
                scope: ServiceInstance,
                serviceName: "business-zone::projectA",
                serviceInstanceName: "e8cf34a1d54a4058a8c98505877770e2@192.168.50.113",
                normal: true
            }
        }
    ) {
        label values{ values{ id value }}
    }
}

执行结果

{
  "data": {
    "readMetricsValues": {
      "values": {
        "values": [
          {
            "id": "202107031400_YnVzaW5lc3Mtem9uZTo6cHJvamVjdEE=.1_ZThjZjM0YTFkNTRhNDA1OGE4Yzk4NTA1ODc3NzcwZTJAMTkyLjE2OC41MC4xMTM=",
            "value": 22
          },
          {
            "id": "202107031401_YnVzaW5lc3Mtem9uZTo6cHJvamVjdEE=.1_ZThjZjM0YTFkNTRhNDA1OGE4Yzk4NTA1ODc3NzcwZTJAMTkyLjE2OC41MC4xMTM=",
            "value": 22
          }
        ]
      }
    }
  }
}

参考文档

Original: https://www.cnblogs.com/switchvov/p/15375438.html
Author: switchvov
Title: Skywalking-10:Skywalking查询协议——GraphQL

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/572860/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • Spring源码阅读—Filter中使用@Autowired失效?

    问题描述 先上代码 1.首先我在web.xml中配置了一个Filter名字叫做myFilter 2.我在这个类中使用@Autowired来试图注入一个Bean,觉果为null 抛出…

    Java 2023年5月30日
    080
  • java中的Map接口(Hashtable ,properties ,HashMap , LinkedHashMap , TreeMap)

    Map接口的特点 Map用于保存具有映射关系的数据:key,Value 补充:Collection接口 也是有映射关系的,底层Value 让一个static Object类的方法代…

    Java 2023年6月6日
    073
  • Centos7安装Docker

    0.安装Docker Docker 分为 CE 和 EE 两大版本。CE 即社区版(免费,支持周期 7 个月),EE 即企业版,强调安全,付费使用,支持周期 24 个月。 Dock…

    Java 2023年6月13日
    079
  • Mybatis源码5 StatementHandler ,ParameterHandler

    Mybatis5 StatementHandler ,ParameterHandler 一丶概述 前面我们总结了SqlSession—>CachingExecut…

    Java 2023年6月14日
    076
  • js实现仿laohuji

    开始抽奖 重置 确定 Original: https://www.cnblogs.com/xiaoxiaodeboke/p/16259585.htmlAuthor: 潇潇消消气Ti…

    Java 2023年6月7日
    066
  • JAVA SE 基础总结

    一、程序组织与运行原理 一个 JAVA 程序文件中主要由如下几部分构成: package 声明 public 类:public 类与类文件名相同,因为其是作为该类文件唯一对外接口,…

    Java 2023年6月7日
    090
  • 回形数格式方阵

    package com.atguigu.exer; import java.util.Scanner; public class Huixing{public static voi…

    Java 2023年6月13日
    085
  • java常用书籍下载

    目录 《码出高效:Java开发手册》 《重构改善既有代码设计》 《深入理解Java虚拟机(第二版-带目录)》 《从Paxos到Zookeeper 分布式一致性原理与实践》 《Jav…

    Java 2023年5月29日
    081
  • Spring整体架构

    Spring框架是一个分层架构,它包含一些列的功能要素,并被分为大约20个模块,如图1-1所示。 这些模块被总结为以下几部分: 1.Core Container Core Cont…

    Java 2023年6月5日
    084
  • Sharding-jdbc 5.1.2案例

    简介 sharding-jdbc案例,版本5.1.2 springboot + mybatis-plus + sharding-jdbc 项目地址:sharding-jdbc-ex…

    Java 2023年6月16日
    089
  • Java字符串处理:随机字符串,提取数字,身份证号码

    一、随机字符串 /** * * @param count 随机字符串&…

    Java 2023年6月5日
    062
  • 整数除法

    给定两个整数 a 和 b ,求它们的除法的商 a/b ,要求不得使用乘号 ‘*’、除号 ‘/’ 以及求余符号 ‘%’ 。 注意: 整数除法的结果应当截去( truncate)其小数…

    Java 2023年6月7日
    081
  • JVM内存结构的组成、各部分功能作用

    一、程序计数器 作用:是记住下一条jvm指令的执行地址 特点: 是线程私有的 不会存在內存溢出 二、虚拟机栈 每个线程运行时所需要的内存,称为虚拟机栈每个栈由多个栈帧(Frame)…

    Java 2023年6月8日
    077
  • springboot源码分析——自动配置流程

    一:ConfigurationClassPostProcessor类的埋点 自动配置解析的核心功能都在这个类里面,这是一个BeanDefinitionRegistryPostPro…

    Java 2023年5月30日
    085
  • Spring Boot:实现MyBatis分页

    综合概述 想必大家都有过这样的体验,在使用Mybatis时,最头痛的就是写分页了,需要先写一个查询count的select语句,然后再写一个真正分页查询的语句,当查询条件多了之后,…

    Java 2023年5月30日
    082
  • 数据结构与算法之递归

    用循环实现阶乘 阶乘的规则就是输入数字n计算乘积.例如n为3计算结果为123。此算法的时间复杂度为O(n) public static long f1(long n) { long…

    Java 2023年6月8日
    088
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球