콘텐츠로 이동

미니앱 로그 수집


미니앱이 다양한 수준의 로그 데이터(해당 source:browser_log 메트릭 유형 로그 데이터)를 Guance로 능동적으로 전송합니다.

기능

  • 사용자 정의 로그 데이터 수집, SDK를 클라이언트 애플리케이션에 통합하여 다양한 시나리오에 맞춰 로그 데이터 수집
  • 애플리케이션 측 오류 정보(네트워크 오류, console 오류 및 JS 오류 포함)를 자동 수집하여 DataFlux로 전송
  • 사용자 정의 오류 수준(debug, critical, error, info, warn), 사용자 정의 Logger 객체 및 사용자 정의 Log 필드
  • RUM 관련 데이터를 자동 수집하여 RUM 비즈니스 시나리오와 연계(rum SDK를 최신 버전으로 업데이트해야 함)

시작하기

사전 준비

  • SDK 도입: NPM, CDN 방식으로 SDK를 애플리케이션에 도입하고, 초기화 후 전역 변수에 저장하여 다른 페이지에서 참조할 수 있도록 함

  • 미니앱 클라이언트 지원: WeChat, Baidu, Alipay, Toutiao 등 대부분의 미니앱

연동 방식

  1. DataKit이 설치 및 공개망 접근 가능하도록 구성되고 IP 지리 정보 라이브러리가 설치되었는지 확인
  2. 콘솔에서 applicationId, env, version 등의 파라미터를 획득하여 애플리케이션 연동 시작
  3. SDK 통합 시 datakitOrigin을 DataKit의 도메인 또는 IP로 설정

  1. 콘솔에서 applicationId, clientTokensite 등의 파라미터를 획득하여 애플리케이션 연동 시작
  2. SDK 통합 시 datakitOrigin을 구성할 필요 없이, 데이터는 기본적으로 공개망 DataWay로 전송됨

NPM 도입

//#ifndef H5 || APP-PLUS || APP-NVUE || APP-PLUS-NVUE
const { datafluxLogs } = require('@cloudcare/dataflux-rum-miniapp-logs')
// RUM 초기화
datafluxLogs.init({
  datakitOrigin: '<DATAKIT ORIGIN>'
  site: "http://172.16.212.186:9529", // 공개망 DataWay 해당 사이트의 도메인
  clientToken: "a993f53a8ea04bc6b9350e5e670a3a3b", // 공개망 DataWay 전송에 필요한 클라이언트 토큰
  service: 'minapp',
  env: 'prod',
  version: '1.0.0'
})
//#endif

CDN 로컬 파일 다운로드 방식(다운로드 주소)

//#ifndef H5 || APP-PLUS || APP-NVUE || APP-PLUS-NVUE
const { datafluxLogs } = require('@cloudcare/dataflux-rum-miniapp-logs')
// RUM 초기화
datafluxLogs.init({
    datakitOrigin: '<DATAKIT ORIGIN>'
  service: 'miniapp',
  env: 'prod',
  version: '1.0.0'
})
//#endif

구성

초기화 파라미터

파라미터 유형 필수 여부 기본값 설명
datakitOrigin String DataKit 데이터 전송 Origin 참고: 프로토콜(// 포함), 도메인(또는 IP 주소)[및 포트 번호]
예: https://www.datakit.com, http://100.20.34.3:8088
clientToken String openway 방식으로 데이터 전송 시 필요한 토큰, Guance 콘솔에서 획득, 필수(공용 openway 방식 연동).
site String 공용 openway 방식 데이터 전송 주소, Guance 콘솔에서 획득, 필수(공용 openway 방식 연동).
service String 아니오 browser 로그 Service 이름
env String 아니오 Web 애플리케이션 현재 환경, 예: Prod: 프로덕션 환경; Gray: 카나리 환경; Pre: 사전 프로덕션 환경; Common: 일상 환경; Local: 로컬 환경;
version String 아니오 Web 애플리케이션의 버전 번호
sampleRate Number 아니오 100 메트릭 데이터 수집 비율: 100은 전체 수집, 0은 수집 안 함
forwardErrorsToLogs Boolean 아니오 true false로 설정하면 console.error, JS 오류 및 네트워크 오류가 DataFlux 로그 데이터로 수집되지 않음

사용

SDK가 애플리케이션에서 초기화된 후, 노출된 SDK API를 통해 로그 데이터를 사용자 정의할 수 있습니다.

logger.debug | info | warn | error | critical (message: string, messageContext = Context)

NPM

import { datafluxLogs } from "@cloudcare/dataflux-rum-miniapp-logs"

datafluxLogs.logger.info("Button clicked", { name: "buttonName", id: 123 })

반환 데이터 구조

{
  "service": "miniapp",
  "session": {
    "id": "c549c2b8-4955-4f74-b7f8-a5f42fc6e79b"
  },
  "type": "logger",
  "_dd": {
    "sdk_name": "miniapp LOG SDK",
    "sdk_version": "1.0.0",
    "env": "",
    "version": ""
  },
  "device": {
    "platform_version": "8.0.5",
    "model": "iPhone 6/7/8 Plus",
    "app_framework_version": "2.23.3",
    "os": "OS",
    "os_version": "10.14.6",
    "os_version_major": "10",
    "screen_size": "414*736",
    "network_type": "3g",
    "divice": "devtools"
  },
  "user": {},
  "date": 1621321916756,
  "view": {
    "referrer": "",
    "name": "pages/index/index",
    "id": "5dce64f4-8d6d-411a-af84-c41653ccd94a"
  },
  "application": {
    "id": "app_idxxxxxx"
  },
  "message": "XHR error get http://testing-ft2x-api.cloudcare.cn/api/v1/workspace/xxx",
  "status": "error",
  "error": {
    "source": "network",
    "stack": "Failed to load"
  },
  "resource": {
    "method": "get",
    "status": 0,
    "status_group": 0,
    "url": "http://testing-ft2x-api.cloudcare.cn/api/v1/workspace/xxx",
    "url_host": "testing-ft2x-api.cloudcare.cn",
    "url_path": "/api/v1/workspace/xxx",
    "url_path_group": "/api/?/workspace/xxx"
  }
}

Status 파라미터

SDK 초기화 후 제공되는 log API를 사용하여 다양한 유형의 상태를 정의할 수 있습니다.

log (message: string, messageContext: Context, status? = 'debug' | 'info' | 'warning' | 'error' | 'critical')

사용

import { datafluxLogs } from '@cloudcare/dataflux-rum-miniapp-logs'

datafluxLogs.logger.log(<MESSAGE>,<JSON_ATTRIBUTES>,<STATUS>);

파라미터 설명

파라미터 설명
<MESSAGE> DataFlux 로그의 Message 필드.
<JSON_ATTRIBUTES> Message를 설명하는 추가 데이터, Json 객체.
<STATUS> 로그 수준, 가능한 값: debug, info, warning, error, critical.

문서 평가

이 페이지가 도움이 되었나요?