跳转至

C++ 应用接入


通过收集 C++ 应用的指标数据,以可视化方式分析应用性能。当前 C++ SDK 支持 Windows 和 Linux 平台。

阅读路径

前置条件

注意

若您已开通 RUM Headless 服务,前置条件已自动配置完成,可直接接入应用。

应用接入

登录观测云控制台,进入用户访问监测页面,点击左上角 新建应用,即可开始创建一个新的应用。

创建完成后,请记录应用对应的 RUM App ID,后续初始化 FTRUMConfig 时需要使用。

安装

源码地址https://github.com/GuanceCloud/datakit-cpp

Demo 地址https://github.com/GuanceCloud/datakit-cpp/ft-sdk-sample

git clone https://github.com/microsoft/vcpkg
cd vcpkg

#下载自定义配置 registries 文件
curl -o vcpkg-configuration.json https://static.guance.com/ft-sdk-package/vcpkg_config/vcpkg-configuration.json 

bootstrap-vcpkg.bat
vcpkg install datakit-sdk-cpp:x64-windows
vcpkg integrate install
git clone https://github.com/microsoft/vcpkg

#apt install ninja-build
#apt install pkg-config

./vcpkg/bootstrap-vcpkg.sh
cd vcpkg

#下载自定义配置 registries 文件
curl -o vcpkg-configuration.json https://static.guance.com/ft-sdk-package/vcpkg_config/vcpkg-configuration.json 

# 如果是 arm 64 需要添加 VCPKG_FORCE_SYSTEM_BINARIES
#export VCPKG_FORCE_SYSTEM_BINARIES=1

./vcpkg install datakit-sdk-cpp:x64-linux

# 在编译环境中,引用 VCPKG_ROOT 变量
export VCPKG_ROOT= [ your_vcpkg_root_dir ]

添加 CMake 配置

cmake_minimum_required(VERSION 3.0)

project(ft-sdk-reference-sample VERSION 1.0.0 LANGUAGES CXX C)

add_definitions(-fPIC -g -Werror=return-type)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++17 -O1 -ftree-vectorize -ffast-math ")
set(CMAKE_CXX_STANDARD 17)

if(DEFINED ENV{VCPKG_ROOT})
if (EXISTS "$ENV{VCPKG_ROOT}/scripts/buildsystems/vcpkg.cmake")
    include ("$ENV{VCPKG_ROOT}/scripts/buildsystems/vcpkg.cmake")
  set(VCPKG_CMAKE_SHARE "$ENV{VCPKG_ROOT}/installed/${VCPKG_TARGET_TRIPLET}/share"
      CACHE STRING "TEST")
endif ()
else ()
message(STATUS "please set the system environment variable : VCPKG_ROOT" $ENV{VCPKG_ROOT})
endif ()

#添加观测云 SDK 引用
find_path(FT-SDK_INCLUDE_DIR datakit-sdk-cpp/FTSDK.h)
find_library(FT-SDK_LIBRARY ft-sdk "${FT-SDK_INCLUDE_DIR}/../lib/")
include_directories(${FT-SDK_INCLUDE_DIR})

file(GLOB PROJECT_SOURCE "*.cpp")
file(GLOB PROJECT_HEADER "../include/*.h" "*.h")

add_executable (${PROJECT_NAME} ${PROJECT_SOURCE} ${PROJECT_HEADER})

#链接 SDK
target_link_libraries(${PROJECT_NAME} PRIVATE ${FT-SDK_LIBRARY})

引用头

#include "datakit-sdk-cpp/FTSDKFactory.h"

初始化说明

最小初始化示例请阅读 快速开始

完整初始化与运行时能力说明请阅读 SDK 初始化

详细配置入口

高级场景

常见问题

添加局变量避免冲突字段

为了避免自定义字段与 SDK 数据冲突,建议标签命名添加 项目缩写 的前缀,例如 df_tag_name。项目中使用的保留 key查询源码

SDK 全局变量中如果出现与 RUM、Log 相同的字段,RUM、Log 中的同名字段会覆盖 SDK 中的全局变量。

如何快速验证是否接入成功

建议先按 快速开始 完成最小初始化,开启 enable_sdk_log 调试日志后,手动触发一次 ViewActionLog 上报,再到控制台确认数据是否出现。

初始化后没有数据怎么办

优先检查以下几项:

  • setServerUrl 配置的 DataKit 地址是否可从当前设备访问
  • setRumAppId 是否填写正确
  • 是否已完成 前置条件 中的 DataKit 与 RUM 采集器配置
  • 当前平台是否为 C++ SDK 已支持的 Windows 或 Linux

如仍无法定位问题,请查看 故障排查

文档评价

文档内容是否对您有帮助? ×