ミニアプリログ収集¶
ミニアプリは、異なるレベルのログデータ(対応する 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 など、ほとんどのミニアプリ。
連携方法¶
- DataKit がインストールされ、パブリックネットワークからアクセス可能に設定され、IP 地理情報データベースがインストールされていることを確認します。
- コンソールで
applicationId、env、versionなどのパラメータを取得し、アプリケーションの連携を開始します。 - SDK を統合する際は、
datakitOriginを DataKit のドメイン名または IP に設定します。
- コンソールで
applicationId、clientToken、siteなどのパラメータを取得し、アプリケーションの連携を開始します。 - 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 を使用してログデータをカスタム設定できます。
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。 |