springboot-阿里羚羊 服務端埋點

官方文檔

集成Java SDK

手動引入jar包「quickaplus-log-collector-java-sdk-1.0.1-SNAPSHOT.jar」
image.png

        <dependency><groupId>com.alibaba.lingyang</groupId><artifactId>quickaplus-log-collector-java-sdk</artifactId><version>1.0.1</version><scope>system</scope><systemPath>${project.basedir}/../lib/quickaplus-log-collector-java-sdk-1.0.1-SNAPSHOT.jar</systemPath></dependency><!-- 這里需要okhttp3依賴不然sdk調用syncSendLog方法會報錯 --><dependency><groupId>com.squareup.okhttp3</groupId><artifactId>okhttp</artifactId><version>4.9.3</version></dependency>

基礎配置

image.png

注意:QlcEndpoint,sdk中會自動拼接/server,自己不要加
image.png

qt:serviceId: YMlICJqxxxxserviceSecret: E3qttxxxxxxxxxxxappKey: WDmVjrSxxxxxsetQlcEndpoint: https://log-api.aplus.xxxxdebugKey: "592320xxxxx5095_001"   #生產環境置空
package com.vehicle.manager.core.config;import lombok.Data;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.context.annotation.Configuration;/*** @author zr 2024/5/24*/
@Configuration
@ConfigurationProperties(prefix = "qt")
@Data
public class QtProperties {private String serviceId;private String serviceSecret;private String appKey;private String setQlcEndpoint;private String debugKey;
}

封裝方法

package com.vehicle.manager.core.service;import com.alibaba.lingyang.quick.tracking.qlc.java.sdk.config.QtSdkConfig;
import com.alibaba.lingyang.quick.tracking.qlc.java.sdk.model.QtLog;
import com.alibaba.lingyang.quick.tracking.qlc.java.sdk.sender.QtLogSenderHelper;
import com.vehicle.manager.core.config.QtProperties;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;import java.util.HashMap;
import java.util.Map;/*** @author zr 2024/5/24*/
@Service
@Slf4j
public class QtService {@Autowiredprivate QtProperties qtProperties;public void configureQtSdk() {QtSdkConfig.setServiceId(qtProperties.getServiceId());QtSdkConfig.setServiceSecret(qtProperties.getServiceSecret());QtSdkConfig.setAppKey(qtProperties.getAppKey());QtSdkConfig.setQlcEndpoint(qtProperties.getSetQlcEndpoint());QtSdkConfig.setOpenLog(true);QtSdkConfig.setCallback(ctx -> {log.info("Response Code: {}", ctx.getResponseCode());log.info("Response Message: {}", ctx.getResponseMessage());log.info("Send Success: {}", ctx.getSendSuccess());log.info("Send Data: {}", ctx.getSendData());log.info("Response Data: {}", ctx.getResponseData());log.info("Errors: {}", ctx.getErrors());});}// eventId為事件編碼,用于區分不同的事件// customProperty事件屬性,我們需要存的日志public void sendLog(String eventId, Map<String, Object> customProperty) {configureQtSdk();// 構造日志對象QtLog log = new QtLog.Builder().eventId(eventId)  //事件編碼(必填).userId("hailiang-server")		//設置賬號ID(設備ID和賬號ID必填一個).customProperty(customProperty)		//設置事件屬性(選填).debugKey(qtProperties.getDebugKey())		//設置埋點驗證標志位(選填),上線時必須刪除.eventTimestamp(System.currentTimeMillis())		//設置客戶端時間戳(必填).serverTimestamp(System.currentTimeMillis()).build();  //設置服務端時間戳(可選)// 發送日志QtLogSenderHelper.syncSendLog(log);}
}

埋點驗證

在這里插入圖片描述

拿到DebugKey,修改到配置文件(生產環境記得去除掉),點擊下一步來到日志明細,方法執行成功后日志明細會收到相應的消息
image.png
測試

package com.vehicle.manager.core;import com.alibaba.lingyang.quick.tracking.qlc.java.sdk.config.QtSdkConfig;
import com.alibaba.lingyang.quick.tracking.qlc.java.sdk.model.QtLog;
import com.alibaba.lingyang.quick.tracking.qlc.java.sdk.sender.QtLogSenderHelper;
import com.vehicle.manager.api.StartApplication;
import com.vehicle.manager.core.config.QtProperties;
import com.vehicle.manager.core.service.QtService;
import lombok.extern.slf4j.Slf4j;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.junit4.SpringRunner;import java.util.HashMap;
import java.util.Map;/*** @author zr 2024/5/24*/
@RunWith(SpringRunner.class)
@SpringBootTest(classes = StartApplication.class)
@Slf4j
public class TestSendLog {@Autowiredprivate QtService qtService;@Testpublic void name() {HashMap<String, Object> customProperty = new HashMap<>();customProperty.put("test2","test2");qtService.sendLog("test_success",customProperty);}
}

image.png
日志明細
在這里插入圖片描述

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/bicheng/14591.shtml
繁體地址,請注明出處:http://hk.pswp.cn/bicheng/14591.shtml
英文地址,請注明出處:http://en.pswp.cn/bicheng/14591.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

應用案例 | 如何實時監測和管理冷鏈倉庫溫濕度?

一、項目背景 冷鏈倉庫溫濕度管理的重要性在于確保倉庫內產品的質量和安全。通過遵循相關法規和標準&#xff0c;滿足客戶對產品質量的需求&#xff0c;同時實施有效的溫濕度管理措施&#xff0c;可以降低成本并提高倉庫作業效率。該項目的實施旨在幫助客戶保證產品的新鮮度&a…

Java - AbstractQueuedSynchronizer

AQS簡介 AQS全稱AbstractQueuedSynchronizer&#xff0c;抽象隊列同步器&#xff0c;是一個實現同步組件的基礎框架。AQS使用一個int類型的成員變量state維護同步狀態&#xff0c;通過內置的同步隊列&#xff08;CLH鎖、FIFO&#xff09;完成線程的排隊工作&#xff0c;底層主…

echarts 散點圖修改散點圖中圖形形狀顏色大小

話不多說&#xff0c;直接上代碼 let option {color:[xxx, xxx, xxx, xxx], //直接設置color可修改圖形顏色title: {text: 散點圖圖形,},tooltip: {trigger: axis,axisPointer: {type: cross}},legend: {top: 2,right:2,itemWidth: 10,itemHeight: 10,textStyle:{fontSize:14}…

shell腳本條件語句和循環語句

文章目錄 一、條件語句測試比較整數數值字符串比較邏輯運算雙中括號&#xff08; &#xff09;{ }if語句結構case語句 二、循環語句基礎知識for循環whileuntil雙重循環及跳出循環 一、條件語句 測試 條件測試&#xff1a;判斷某需求是否滿足&#xff0c;需要由測試機制來實現…

視頻分類——C3D使用

整體比較分散&#xff0c;可能很多源碼都需要修改&#xff0c;需要有耐心。 一、數據準備 PS 調研后&#xff0c;上手容易代碼比較簡潔的是&#xff1a;https://github.com/Niki173/C3D/tree/main 因為源碼很多參數都寫死到了源碼中&#xff0c;沒有解耦&#xff0c;并且默…

CCF-CSP認證 2024年3月 4.化學方程式配平

題解&#xff1a;首先完成數據的讀入&#xff0c;然后高斯消元求秩按題意解即可 #pragma GCC optimize(2, 3, "Ofast", "inline") #include <bits/stdc.h> using namespace std; const int maxn 100;using matrix double[maxn][maxn]; using vect…

5.20Git

版本控制工具Git&#xff0c;其他的工具還有SVN 共享代碼&#xff0c;追溯記錄&#xff0c;存儲.c文件 Git實現的功能&#xff1a;回溯&#xff08;以前某個時間節點的數據情況&#xff09;共享&#xff08;大家共享修改&#xff09; Git&#xff1a;80% SVN&#xff…

QT tableWidget詳細分析

一.定義 QTableWidget是一個用于顯示表格數據的Qt控件&#xff0c;它是一個基于Qt Model/View框架的視圖組件。QTableWidget提供了一種簡單的方式來展示和編輯表格數據&#xff0c;用戶可以通過添加行、列和單元格來構建一個完整的數據表格。 下面是一些QTableWidget的主要特點…

The Missing Semester of Your CS Education(計算機教育中缺失的一課)

Shell 工具和腳本(Shell Tools and Scripting) 一、shell腳本 1.1、變量賦值 在bash中為變量賦值的語法是foobar&#xff0c;訪問變量中存儲的數值&#xff0c;其語法為 $foo。 需要注意的是&#xff0c;foo bar &#xff08;使用空格隔開&#xff09;是不能正確工作的&…

網工內推 | 香港移動,10年以上數通經驗,CCIE,5W-6W

01 香港移動招聘 &#x1f537;招聘崗位&#xff1a;網絡工程師 &#x1f537;崗位要求&#xff1a; 需要有10年及以上數通經驗&#xff0c;有CCIE 證書&#xff0c;懂技術管理&#xff0c;溝通暢通 &#x1f537;語言要求&#xff1a; 粵語英語 &#x1f537;薪資&#xff1…

基于灰狼優化算法優化RBF(GWO-RBF)的數據回歸預測(多輸入多輸出)

代碼原理及流程 基于灰狼優化算法優化多輸入多輸出&#xff08;MIMO&#xff09;的RBF神經網絡的數據回歸預測&#xff0c;可以采取以下步驟&#xff1a; 1. 數據準備&#xff1a;準備包含多個輸入特征和多個輸出目標的數據集&#xff0c;確保數據已經經過預處理和歸一化。 …

TCP - 半連接隊列和全連接隊列

目錄 一、半連接隊列和全連接隊列的概念 二、全連接隊列溢出 三、半連接隊列溢出 一、半連接隊列和全連接隊列的概念 1. 半連接隊列&#xff1a;服務端收到客戶端發送的 SYN 包時&#xff0c;內核會將該連接加入半連接 SYN 隊列&#xff0c;并向客戶端返回響應 2. 全連接隊…

CSS基礎(第二天)

Emmet語法 快速生成HTML結構語法 1. 生成標簽 直接輸入標簽名 按tab鍵即可 比如 div 然后tab 鍵&#xff0c; 就可以生成 <div></div> 2. 如果想要生成多個相同標簽 加上 * 就可以了 比如 div*3 就可以快速生成3個div 3. 如果有父子級關系的標簽&#xff0c;可以…

算法刷題筆記 數的范圍(C++實現)(二分法重要例題)

文章目錄 題目描述題目思路題目代碼&#xff08;C&#xff09;題目感想 題目描述 給定一個按照升序排列的長度為n的整數數組&#xff0c;以及q個查詢。對于每個查詢&#xff0c;返回一個元素k的起始位置和終止位置&#xff08;位置從0開始計數&#xff09;。如果數組中不存在該…

Docker【2】iptables 錯誤解決

iptables 錯誤解決 問題說明問題分析解決步驟1. 確保 iptables 模塊已加載2. 檢查和重啟 docker 服務3. 檢查 firewalld 狀態4. 重置 iptables 規則5. 查看和更新 Docker 配置 總結 問題說明 執行的 docker 命令如下&#xff0c;啟動 nginx 并設置宿主機端口 (8080) 與容器端口…

學習Uni-app開發小程序Day25

這一章學習了觸底加載更多阻止無效的網絡請求、分類列表存入Storage在預覽頁面讀取緩存展示、通過swiper的事件實現真正的壁紙預覽及切換 觸底加載更多阻止無效的網絡請求、load-more樣式的展現 前面已經學習了當列表觸底后&#xff0c;會繼續加載&#xff0c;當到最后一層后…

自動化測試--利用pytest實現整條業務鏈路測試

? 概述 前面一章講解了單個接口的測試&#xff0c;但是實際項目中&#xff0c;因為權限和登錄狀態的限制&#xff0c;大部分接口沒辦法直接訪問到&#xff0c;這時候我們想訪問到一個系統的接口&#xff0c;就需要模擬用戶登錄拿到用戶的token和所擁有的權限之后再將這些信息…

vivado2020.2創建hls仿真工程實現led閃爍

下載vivado2020.2后會有這個出現在桌面 點擊進入創建工程&#xff0c;這里注意不要有前面的\我再復制的時候復制錯了導致創建失敗 按f光標就會跳轉到下一個f開頭的函數處&#xff0c;要查找其他函數也同理 生成了一個synthesis summary文件 找到目錄下生成的.v文件 an 點…

Pod進階——資源限制以及探針檢查

目錄 一、資源限制 1、資源限制定義&#xff1a; 2、資源限制request和limit資源約束 3、Pod和容器的資源請求和限制 4、官方文檔示例 5、CPU資源單位 6、內存資源單位 7、資源限制實例 ①編寫yaml資源配置清單 ②釋放內存&#xff08;node節點&#xff0c;以node01為…

【知識蒸餾】多任務模型 logit-based 知識蒸餾實戰

一、什么是邏輯&#xff08;logit&#xff09;知識蒸餾 Feature-based蒸餾原理是知識蒸餾中的一種重要方法&#xff0c;其關鍵在于利用教師模型的隱藏層特征來指導學生模型的學習過程。這種蒸餾方式旨在使學生模型能夠學習到教師模型在特征提取和表示方面的能力&#xff0c;從…