当前位置: 首页 > news >正文

Golang版本处理Skywalking Trace上报数据

Tips: 中间记录了解决问题的过程,如不感兴趣可直接跳至结尾

  1. 首先去es里查询skywalking trace的元数据
    在这里插入图片描述
    可以拿到一串base64加密后的data_binary(直接解密不能用,会有乱码,可参考https://github.com/apache/skywalking/issues/7423)

  2. data_binary进行base64解密

skywalking提供了一个java的sdk可以直接分析这串内容,代码如下所示:

String dataBinary= "xxxxxx"
byte[]decode = Base64.getDecoder().decode(dataBinary);
SegmentObject segmentObject = SegmentObject.parseFrom(decode);
System.out.println(JSON.toJSONString(segmentObject));

segmentObject内有我们所有需要的数据,但golang并未找到类似的函数,所以我们需要用golang实现类似parseFrom()的逻辑,我们先看一下java的源码

public static SegmentObject parseFrom(byte[] data) throws InvalidProtocolBufferException {return (SegmentObject)PARSER.parseFrom(data);
}

它的本质就是调用com.google.protobuf提供的parseFrom()函数,所以我们只需要用golang版本的proto去反序列化base64解密后的byte即可

  1. 反序列化

我先尝试了将java版本的SegmentObject转成json,再转成proto文件,然后生成pb.go,用这里生成的SegmentObject去进行反序列化,发现并不可行

最后是通过skywalking-go版本agent的源码,找到了对应的pb文件
在这里插入图片描述
然后使用里面已经编译好的SegmentObject对象即可

import ("encoding/base64""fmt""google.golang.org/protobuf/proto""testing"agent "skywalking.apache.org/repo/goapi/collect/language/agent/v3"
)func TestSkyWalking(t *testing.T) {dataBinary := "xxx"by, err := base64.StdEncoding.DecodeString(dataBinary)if err != nil {t.Error(err)}segmentObject := &agent.SegmentObject{}err = proto.Unmarshal(by, segmentObject)fmt.Printf("%v", segmentObject)}

相关文章:

Golang版本处理Skywalking Trace上报数据

Tips: 中间记录了解决问题的过程,如不感兴趣可直接跳至结尾 首先去es里查询skywalking trace的元数据 可以拿到一串base64加密后的data_binary(直接解密不能用,会有乱码,可参考https://github.com/apache/skywalking/issues/7423) 对data_b…...

【开源】基于Vue和SpringBoot的教学过程管理系统

项目编号: S 054 ,文末获取源码。 \color{red}{项目编号:S054,文末获取源码。} 项目编号:S054,文末获取源码。 目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块2.1 教师端2.2 学生端2.3 微信小程序端2…...

【python学习】中级篇-图形界面-内置库Tkinter,用于创建图形用户界面(GUI)

Tkinter是Python的一个内置库,用于创建图形用户界面(GUI)。 以下是一个简单的Tkinter用法示例: import tkinter as tkdef on_click():label.config(text"你好," entry.get())# 创建主窗口 root tk.Tk() root.title("Tkinte…...

【开源】基于JAVA的快递管理系统

项目编号: S 007 ,文末获取源码。 \color{red}{项目编号:S007,文末获取源码。} 项目编号:S007,文末获取源码。 目录 一、摘要1.1 项目介绍1.2 项目录屏 二、研究内容2.1 数据中心模块2.2 快递类型模块2.3 快…...

伦敦银涨1%内银涨多少才能持平

伦敦银的价格走势是全球白银市场的价格指标,世界上其他主要的白银市场的价格走势,都是以它作为标杆并紧密的跟随。如果排除汇率的因素,伦敦银价格上涨百分之一,国内的白银价格理论上也会上涨接近的水平。 但不同市场上的白银价格&…...

Linux:进度条(小程序)以及git三板斧

Linux小程序&#xff1a;进度条 在实现小程序前我们要弄清楚&#xff1a; 1.缓冲区&#xff1b; 2.回车与换行。 缓冲区&#xff1a; 分别用gcc来编译下面两个程序&#xff1a; 程序一&#xff1a; #include <stdio.h> int main() { printf("hello Makefil…...

CSS-表格属性(1)

边框相关属性&#xff08;其他元素也能用&#xff09;&#xff1a; 属性名&#xff1a;border-style功能&#xff1a;边框风格可选值&#xff1a; 1.none 默认值(无边框) 2.solid 实线 3.dashed 虚线 4.dotted 点线 5.double 双实线 border-style: dashed; 属性名&#xff1a…...

html在线生成二维码(附源码)

文章目录 1.设计来源1.1 主界面1.2 美化功能 2.效果和源码2.1 动态效果2.2 源代码 源码下载 作者&#xff1a;xcLeigh 文章地址&#xff1a;https://blog.csdn.net/weixin_43151418/article/details/134458927 html二维码生成&#xff08;附源码&#xff09;&#xff0c;生成二…...

POS系统完整体系的介绍 Pos终端主密钥MK、DUKPT、PEK、DEK、MEK、TUSN的含义 ---安全行业基础篇7

POS系统完整体系的介绍 销售点终端&#xff08;POS机&#xff09;是零售和服务行业中用于处理销售和交易的关键技术。POS系统不仅涉及支付处理&#xff0c;还包括库存管理、顾客关系管理、数据分析等多个方面。下面是POS系统完整体系的介绍&#xff1a; 1. 硬件组件 终端机&…...

多普勒流速仪的功能作用是什么?

我国地域广大&#xff0c;各地降雨分布不均&#xff0c;某些城市经常会出现连续的降雨进而导致城市排水压力过大&#xff0c;为了提高城市应对排水过量的极端情况的出现&#xff0c;亟需一种方案能够对城市排水进行有效及时的监测&#xff0c;从而能够及时的采取应对方案。 在污…...

java 数据库 查询 select 2

Day2 组函数 以组为操作单位&#xff0c;一组数据得到一个结果。 在没有手动分组的前提下&#xff0c;整张表默认为一组数据 max(列名)&#xff1a;获取最大值 min(列名)&#xff1a;获取最小值 sum(列名)&#xff1a;获取总和 avg(列名)&#xff1a;获取平均值 count(列…...

【前端学java】复习巩固-Java中的对象比较(14)

往期回顾&#xff1a; 【前端学java】JAVA开发的依赖安装与环境配置 &#xff08;0&#xff09;【前端学 java】java的基础语法&#xff08;1&#xff09;【前端学java】JAVA中的packge与import&#xff08;2&#xff09;【前端学java】面向对象编程基础-类的使用 &#xff08…...

Sentinel 系统规则 (SystemRule)

Sentinel 是面向分布式、多语言异构化服务架构的流量治理组件&#xff0c;主要以流量为切入点&#xff0c;从流量路由、流量控制、流量整形、熔断降级、系统自适应过载保护、热点流量防护等多个维度来帮助开发者保障微服务的稳定性。 SpringbootDubboNacos 集成 Sentinel&…...

Linux:详解(yum的使用、vim编辑器命令集合以及gcc/g++编译器的使用)

Linux 软件包管理器 yum 什么是软件包&#xff1a; 在Linux下安装软件, 一个通常的办法是下载到程序的源代码, 并进行编译, 得到可执行程序. 但是这样太麻烦了, 于是有些人把一些常用的软件提前编译好, 做成软件包(可以理解成windows上的安装程序)放在一个服务器上, 通…...

剧情继续:马斯克曝出OpenAI前员工举报信,董事会与奥特曼谈判回归

丰色 发自 凹非寺 量子位 | 公众号QbitAI 经过4天的极限拉扯、反转再反转&#xff0c;奥特曼有可能重新回归了。 据知情人士透露&#xff0c;OpenAI董事会正与奥特曼进行一场“富有成效”的新谈判。 如果奥特曼回到OpenAI&#xff0c;他将继续担任CEO。 与此同时&#xff0c…...

mysql解压版安装步骤linux

1. MySQL下载就不说了&#xff0c;以5.7版本举例 2. 解压安装包 tar -zxvf mysql-5.7.41-linux-glibc2.12-x86_64.tar.gz 3. 重命名目录 mv mysql-5.7.41-linux-glibc2.12-x86_64 /usr/local/mysql 4. 创建mysql用户组和用户 groupadd mysql useradd -r -g mysql mysql …...

Program Header Table(转载)

程序头表与段表相互独立&#xff0c;由ELF文件头统一管理。 程序头表负责ELF文件从文件到加载后映像的映射关系&#xff0c;一般只有可执行文件包含。 1. segment和section segment: 程序头表项描述的对象称为segment&#xff0c;即elf文件加载后的数据块&#xff1b; 它提供…...

汽车智能座舱/智能驾驶SOC -2

第二篇&#xff08;笔记&#xff09;。 未来智能汽车电子电气将会是集中式架构&#xff08;车载数据中心&#xff09;虚拟化技术&#xff08;提供车载数据中心灵活性和安全性&#xff09;这个几乎是毋庸置疑的了。国际大厂也否纷纷布局超算芯片和车载数据中心平台。但是演进需…...

Vite Vue3+Element Plus框架布局

App根组件&#xff1a;框架布局 <template><el-container class"layout-container-demo" style"height: 98vh"><!-- 菜单栏 --><el-aside width"200px"><el-scrollbar><!-- router:是否启用 vue-router 模式。…...

【原创】为MybatisPlus增加一个逻辑删除插件,让XML中的SQL也能自动增加逻辑删除功能

前言 看到这个标题有人就要说了&#xff0c;D哥啊&#xff0c;MybatisPlus不是本来就有逻辑删除的配置吗&#xff0c;比如TableLogic注解&#xff0c;配置文件里也能添加如下配置设置逻辑删除。 mybatis-plus:mapper-locations: classpath*:mapper/*.xmlconfiguration:mapUnd…...

【大白话说Java面试题】【Java基础篇】第35题:怎样声明一个类不会被继承?什么场景下会用

第35题&#xff1a;怎样声明一个类不会被继承&#xff1f;什么场景下会用 &#x1f4da; 回答&#xff1a; 核心概念&#xff1a; 在 Java 中&#xff0c;可以通过在类声明前添加 final 关键字来禁止该类被继承。 1. 声明方式 语法&#xff1a;final class MyClass {// 类的…...

51单片机实战:用矩阵键盘和LCD1602做个密码锁(附完整代码和避坑指南)

51单片机实战&#xff1a;从零打造高可靠电子密码锁&#xff08;矩阵键盘LCD1602完整方案&#xff09; 1. 项目背景与核心设计思路 在嵌入式系统开发中&#xff0c;将基础外设模块组合实现完整功能是工程师的必备技能。本方案基于STC89C52单片机&#xff0c;整合矩阵键盘输入、…...

Docker Cheat Sheet:开源社区协作的终极指南与成功模式分析

Docker Cheat Sheet&#xff1a;开源社区协作的终极指南与成功模式分析 【免费下载链接】docker-cheat-sheet Docker Cheat Sheet 项目地址: https://gitcode.com/gh_mirrors/do/docker-cheat-sheet Docker Cheat Sheet 是一份全面的 Docker 技术速查手册&#xff0c;汇…...

YOLO数据增强中的Mosaic技术

引言:Mosaic增强——目标检测领域的革命性创新 在深度学习驱动的目标检测领域,YOLO(You Only Look Once)系列模型以其卓越的实时性和精度平衡而著称。然而,模型的最终性能不仅取决于其精巧的网络架构,更依赖于训练数据的质量与多样性。Mosaic增强作为YOLOv4首次提出并在…...

LX Music Desktop 2024终极指南:三步安装免费开源跨平台音乐播放器

LX Music Desktop 2024终极指南&#xff1a;三步安装免费开源跨平台音乐播放器 【免费下载链接】lx-music-desktop 一个基于 Electron 的音乐软件 项目地址: https://gitcode.com/GitHub_Trending/lx/lx-music-desktop LX Music Desktop 是一款基于 Electron 和 Vue 3 开…...

前端八股整理总索引|JS/TS、HTML/CSS、Vue、浏览器、工程化与手写题

文章目录一、JavaScript / TypeScript 篇二. CSS 篇三. VUE 篇四. 工程化篇五. 浏览器篇六. 手写篇一、JavaScript / TypeScript 篇 前端八股整理&#xff08;JavaScript 01&#xff09;&#xff5c;interface/type 区别、数组常用方法、 与 前端八股整理&#xff08;JavaScr…...

用原神角色配色拯救你的SCI论文插图:手把手教你安装使用MGenshin配色包

用《原神》角色美学重构科研图表&#xff1a;MGenshin配色包的学术应用指南 科研图表的美学困境往往被学术界低估——那些本应传递重要发现的折线图、柱状图&#xff0c;却因单调的"红蓝绿"配色沦为视觉噪音。当我在Nature期刊上看到一组采用游戏《塞尔达传说》配色方…...

别再折腾Docker了!用桌面版AnythingLLM,5分钟搞定你的第一个私有知识库助手

桌面版AnythingLLM&#xff1a;零门槛打造个人知识库助手的极简指南 你是否曾经想拥有一个能随时解答你私人文档问题的AI助手&#xff0c;却被复杂的Docker命令和云服务器配置劝退&#xff1f;现在&#xff0c;这一切变得前所未有的简单。桌面版AnythingLLM彻底改变了游戏规则—…...

手机拍照背后的秘密:一文看懂ISP图像处理流水线(从RAW到JPEG全流程拆解)

手机拍照背后的秘密&#xff1a;一文看懂ISP图像处理流水线&#xff08;从RAW到JPEG全流程拆解&#xff09; 每次按下手机快门时&#xff0c;你是否好奇过那张瞬间生成的精美照片背后究竟发生了什么&#xff1f;从传感器捕捉的光信号到朋友圈里点赞无数的成片&#xff0c;中间隐…...

基于ChatGPT与FastAPI构建YouTube视频智能摘要系统

1. 项目概述&#xff1a;当ChatGPT遇上YouTube&#xff0c;我们能做什么&#xff1f;最近在GitHub上看到一个挺有意思的项目&#xff0c;叫AIAdvantage/chatgpt-api-youtube。光看名字&#xff0c;你大概就能猜到它的核心玩法&#xff1a;把ChatGPT的智能对话能力和YouTube这个…...