@thinkingai/ae-cli 1.0.28 → 6.0.16
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -16
- package/README.zh.md +1 -16
- package/dist/{auth-H2376DEF.js → auth-DYC2BGLM.js} +2 -2
- package/dist/{auth-5NSDQFQB.js → auth-GHBMJ5ZR.js} +31 -12
- package/dist/{chunk-CLJF7MQA.js → chunk-2DUEAXV3.js} +1 -1
- package/dist/chunk-5OC7CYCG.js +98 -0
- package/dist/{chunk-SRJIAOBN.js → chunk-6W4QOZAL.js} +10 -0
- package/dist/{chunk-LU7SXK4Q.js → chunk-BJX3GXWC.js} +2 -2
- package/dist/{chunk-WCHI7725.js → chunk-DMMEPCST.js} +47 -6
- package/dist/{chunk-IMBKVXKY.js → chunk-EGEIXA2Z.js} +82 -10
- package/dist/{chunk-AD5V3ZPJ.js → chunk-I5CRVM2S.js} +98 -10
- package/dist/chunk-NOO24N7W.js +11 -0
- package/dist/{chunk-GSJGPNKK.js → chunk-PN3OS34E.js} +1 -1
- package/dist/{chunk-CAQYQA4R.js → chunk-RSHMZ3LG.js} +15 -1
- package/dist/{client-FCMK3XEK.js → client-2UJ63MVQ.js} +3 -3
- package/dist/{config-64G36TJL.js → config-NCUGK6NS.js} +3 -3
- package/dist/index.js +2549 -29
- package/dist/{model-EZ6K7FXI.js → model-SJSOZTRS.js} +5 -7
- package/dist/{raw-VEF3D6UD.js → raw-7NVWSVJP.js} +4 -4
- package/dist/{sync-NRODEVNH.js → sync-GRVO4K3U.js} +120 -23
- package/dist/{te-agent-7U7JLJKU.js → te-agent-KZRIEN4N.js} +468 -47
- package/dist/{te-analysis-A2OSGHQ4.js → te-analysis-VAR4KUOK.js} +145 -28
- package/dist/{te-audience-LI67PPGO.js → te-audience-KMKYI2YJ.js} +23 -14
- package/dist/{te-common-35WVU3C5.js → te-common-WNCZB7R7.js} +5 -4
- package/dist/{te-community-LEAP6PWT.js → te-community-JEEFXPB3.js} +11 -10
- package/dist/{te-dataops-N2LGZBOX.js → te-dataops-GD3XBYCS.js} +33 -32
- package/dist/{te-engage-H7C72Z46.js → te-engage-4XHCTS6I.js} +5 -4
- package/dist/{te-kb-I2OKTBAI.js → te-kb-B62KFP2A.js} +97 -7
- package/dist/{te-meta-HBTIEDRO.js → te-meta-EPZGQN56.js} +10 -9
- package/dist/{te-team-EM5OWRQL.js → te-team-YY24VORI.js} +16 -12
- package/dist/tracking/i18n/resources/cli/en.json +153 -0
- package/dist/tracking/i18n/resources/cli/ja.json +153 -0
- package/dist/tracking/i18n/resources/cli/ko.json +153 -0
- package/dist/tracking/i18n/resources/cli/zh.json +153 -0
- package/package.json +9 -3
- package/skills/ae-agent/SKILL.md +66 -26
- package/skills/ae-analysis/SKILL.md +108 -8
- package/skills/ae-analysis/references/cancel_query.md +39 -0
- package/skills/ae-analysis/references/drilldown_user_events.md +4 -2
- package/skills/ae-analysis/references/drilldown_users.md +4 -2
- package/skills/ae-analysis/references/get_bi_panel_detail.md +35 -0
- package/skills/ae-analysis/references/list_alerts.md +1 -1
- package/skills/ae-analysis/references/list_bi_panels.md +35 -0
- package/skills/ae-analysis/references/list_cluster_members.md +4 -1
- package/skills/ae-analysis/references/list_dashboards.md +1 -1
- package/skills/ae-analysis/references/list_entities.md +1 -1
- package/skills/ae-analysis/references/list_events.md +1 -1
- package/skills/ae-analysis/references/list_metrics.md +1 -1
- package/skills/ae-analysis/references/list_project_mark_times.md +1 -1
- package/skills/ae-analysis/references/list_properties.md +1 -1
- package/skills/ae-analysis/references/list_public_access_links.md +1 -1
- package/skills/ae-analysis/references/list_reports.md +1 -1
- package/skills/ae-analysis/references/list_tag_members.md +4 -1
- package/skills/ae-analysis/references/query_adhoc.md +6 -5
- package/skills/ae-analysis/references/query_bi_panel_data.md +58 -0
- package/skills/ae-analysis/references/query_dashboard_report_data.md +4 -1
- package/skills/ae-analysis/references/query_entity_details.md +5 -2
- package/skills/ae-analysis/references/query_event_details.md +4 -1
- package/skills/ae-analysis/references/query_report_data.md +2 -2
- package/skills/ae-analysis-global/SKILL.md +3 -1
- package/skills/ae-analysis-intent/SKILL.md +132 -0
- package/skills/ae-data-integration-helper/SKILL.md +242 -0
- package/skills/ae-data-integration-helper/references/android_sdk_faq.md +179 -0
- package/skills/ae-data-integration-helper/references/c_sdk_compilation.md +83 -0
- package/skills/ae-data-integration-helper/references/c_sdk_faq.md +416 -0
- package/skills/ae-data-integration-helper/references/cocoscreator_sdk_faq.md +123 -0
- package/skills/ae-data-integration-helper/references/cpp_server_sdk_faq.md +365 -0
- package/skills/ae-data-integration-helper/references/index.md +56 -0
- package/skills/ae-data-integration-helper/references/ios_sdk_faq.md +118 -0
- package/skills/ae-data-integration-helper/references/java_sdk_faq.md +406 -0
- package/skills/ae-data-integration-helper/references/javascript_sdk_faq.md +129 -0
- package/skills/ae-data-integration-helper/references/logbus2_guide.md +309 -0
- package/skills/ae-data-integration-helper/references/logbus2_parser_plugin.md +348 -0
- package/skills/ae-data-integration-helper/references/minigame_sdk_faq.md +115 -0
- package/skills/ae-data-integration-helper/references/miniprogram_sdk_faq.md +118 -0
- package/skills/ae-data-integration-helper/references/python_sdk_faq.md +232 -0
- package/skills/ae-data-integration-helper/references/restful_api_notes.md +74 -0
- package/skills/ae-data-integration-helper/references/sdk_log_guide.md +316 -0
- package/skills/ae-data-integration-helper/references/sdk_usage_notes.md +107 -0
- package/skills/ae-data-integration-helper/references/unity_sdk_faq.md +115 -0
- package/skills/ae-generate-tracking-code/SKILL.md +629 -0
- package/skills/ae-generate-tracking-code/references/autotrack-enum.md +183 -0
- package/skills/ae-generate-tracking-code/references/client-sdk-insert.md +202 -0
- package/skills/ae-generate-tracking-code/references/datax-config.md +43 -0
- package/skills/ae-generate-tracking-code/references/debug-script.md +102 -0
- package/skills/ae-generate-tracking-code/references/logbus-config.md +200 -0
- package/skills/ae-generate-tracking-code/references/modes.md +83 -0
- package/skills/ae-generate-tracking-code/references/restful-call.md +36 -0
- package/skills/ae-generate-tracking-code/references/sdk-index.md +128 -0
- package/skills/ae-generate-tracking-code/references/server-sdk-insert.md +206 -0
- package/skills/ae-generate-tracking-code/references/snippet-delivery.md +394 -0
- package/skills/ae-generate-tracking-code/references/te-api.md +181 -0
- package/skills/ae-generate-tracking-plan/SKILL.md +1083 -0
- package/skills/ae-generate-tracking-plan/references/autotrack-events.md +273 -0
- package/skills/ae-generate-tracking-plan/references/business-dimension-mapping.md +425 -0
- package/skills/ae-generate-tracking-plan/references/te-api.md +100 -0
- package/skills/ae-generate-tracking-plan/references/xlsx-schema.md +152 -0
- package/skills/ae-kb/SKILL.md +38 -5
- package/tracking-plan-template/MMO/346/211/213/346/270/270/345/237/213/347/202/271/346/250/241/346/235/277_v1.md +104 -0
- package/tracking-plan-template/MMO/346/211/213/346/270/270/345/237/213/347/202/271/346/250/241/346/235/277_v1.xlsx +0 -0
- package/tracking-plan-template/MMO/351/241/265/346/270/270/345/237/213/347/202/271/346/250/241/346/235/277_v2.md +117 -0
- package/tracking-plan-template/MMO/351/241/265/346/270/270/345/237/213/347/202/271/346/250/241/346/235/277_v2.xlsx +0 -0
- package/tracking-plan-template/RPG/347/261/273/345/237/213/347/202/271/346/250/241/346/235/277_v1.md +72 -0
- package/tracking-plan-template/RPG/347/261/273/345/237/213/347/202/271/346/250/241/346/235/277_v1.xlsx +0 -0
- package/tracking-plan-template/SLG/346/270/270/346/210/217/345/237/213/347/202/271/346/250/241/346/235/277_v1.md +86 -0
- package/tracking-plan-template/SLG/346/270/270/346/210/217/345/237/213/347/202/271/346/250/241/346/235/277_v1.xlsx +0 -0
- package/tracking-plan-template/Slots/345/237/213/347/202/271/346/250/241/346/235/277_v1.md +80 -0
- package/tracking-plan-template/Slots/345/237/213/347/202/271/346/250/241/346/235/277_v1.xlsx +0 -0
- package/tracking-plan-template/TE /345/237/213/347/202/271/347/244/272/344/276/213/346/250/241/346/235/277.md" +40 -0
- package/tracking-plan-template/TE /345/237/213/347/202/271/347/244/272/344/276/213/346/250/241/346/235/277.xlsx +0 -0
- package/tracking-plan-template/TE/345/256/230/346/226/271/346/250/241/346/235/277_dataTrackSample.md +40 -0
- package/tracking-plan-template/TE/345/256/230/346/226/271/346/250/241/346/235/277_dataTrackSample.xlsx +0 -0
- package/tracking-plan-template//344/274/221/351/227/262/345/205/273/346/210/220/347/261/273/345/237/213/347/202/271/346/250/241/346/235/277_v2.md +92 -0
- package/tracking-plan-template//344/274/221/351/227/262/345/205/273/346/210/220/347/261/273/345/237/213/347/202/271/346/250/241/346/235/277_v2.xlsx +0 -0
- package/tracking-plan-template//345/215/241/347/211/214/346/270/270/346/210/217/345/237/213/347/202/271/346/250/241/346/235/277_v1.md +119 -0
- package/tracking-plan-template//345/215/241/347/211/214/346/270/270/346/210/217/345/237/213/347/202/271/346/250/241/346/235/277_v1.xlsx +0 -0
- package/tracking-plan-template//345/241/224/351/230/262/345/205/273/346/210/220/347/261/273/345/237/213/347/202/271/346/250/241/346/235/277_V1.md +130 -0
- package/tracking-plan-template//345/241/224/351/230/262/345/205/273/346/210/220/347/261/273/345/237/213/347/202/271/346/250/241/346/235/277_V1.xlsx +0 -0
- package/tracking-plan-template//345/276/256/344/277/241/345/260/217/346/270/270/346/210/217/345/237/213/347/202/271/346/250/241/346/235/277_v1.md +52 -0
- package/tracking-plan-template//345/276/256/344/277/241/345/260/217/346/270/270/346/210/217/345/237/213/347/202/271/346/250/241/346/235/277_v1.xlsx +0 -0
- package/tracking-plan-template//346/215/225/351/261/274/347/261/273/345/237/213/347/202/271/346/250/241/346/235/277_v1.md +68 -0
- package/tracking-plan-template//346/215/225/351/261/274/347/261/273/345/237/213/347/202/271/346/250/241/346/235/277_v1.xlsx +0 -0
- package/tracking-plan-template//346/224/276/347/275/256/347/261/273/345/215/241/347/211/214/346/270/270/346/210/217_/345/237/213/347/202/271/346/250/241/347/211/210v1.md +108 -0
- package/tracking-plan-template//346/224/276/347/275/256/347/261/273/345/215/241/347/211/214/346/270/270/346/210/217_/345/237/213/347/202/271/346/250/241/347/211/210v1.xlsx +0 -0
- package/tracking-plan-template//346/224/276/347/275/256/347/261/273/345/237/213/347/202/271/346/250/241/346/235/277_v1.md +119 -0
- package/tracking-plan-template//346/224/276/347/275/256/347/261/273/345/237/213/347/202/271/346/250/241/346/235/277_v1.xlsx +0 -0
- package/tracking-plan-template//346/243/213/347/211/214/347/261/273/357/274/210/346/226/227/345/234/260/344/270/273/357/274/211/345/237/213/347/202/271/346/250/241/346/235/277_v1.md +63 -0
- package/tracking-plan-template//346/243/213/347/211/214/347/261/273/357/274/210/346/226/227/345/234/260/344/270/273/357/274/211/345/237/213/347/202/271/346/250/241/346/235/277_v1.xlsx +0 -0
- package/tracking-plan-template//346/243/213/347/211/214/347/261/273/357/274/210/351/272/273/345/260/206/357/274/211/345/237/213/347/202/271/346/250/241/346/235/277_v2.md +101 -0
- package/tracking-plan-template//346/243/213/347/211/214/347/261/273/357/274/210/351/272/273/345/260/206/357/274/211/345/237/213/347/202/271/346/250/241/346/235/277_v2.xlsx +0 -0
- package/tracking-plan-template//347/224/265/345/225/206/345/237/213/347/202/271/346/226/271/346/241/210/346/250/241/346/235/277_v1.md +84 -0
- package/tracking-plan-template//347/224/265/345/225/206/345/237/213/347/202/271/346/226/271/346/241/210/346/250/241/346/235/277_v1.xlsx +0 -0
- package/tracking-plan-template//347/237/255/345/211/247/344/272/247/345/223/201/345/237/213/347/202/271/346/226/271/346/241/210/346/250/241/346/235/277_v1.md +79 -0
- package/tracking-plan-template//347/237/255/345/211/247/344/272/247/345/223/201/345/237/213/347/202/271/346/226/271/346/241/210/346/250/241/346/235/277_v1.xlsx +0 -0
- package/tracking-plan-template//347/244/276/344/272/244/350/201/212/345/244/251/347/261/273/345/237/213/347/202/271/346/250/241/346/235/277_v1.md +105 -0
- package/tracking-plan-template//347/244/276/344/272/244/350/201/212/345/244/251/347/261/273/345/237/213/347/202/271/346/250/241/346/235/277_v1.xlsx +0 -0
- package/tracking-plan-template//351/230/205/350/257/273/347/261/273APP/345/237/213/347/202/271/346/250/241/346/235/277_v1.md +83 -0
- package/tracking-plan-template//351/230/205/350/257/273/347/261/273APP/345/237/213/347/202/271/346/250/241/346/235/277_v1.xlsx +0 -0
- package/wiki/te-docs/index.md +225 -0
- package/wiki/te-docs/raw/advanced-data-type/first-event-check.md +66 -0
- package/wiki/te-docs/raw/advanced-data-type/updated-event.md +87 -0
- package/wiki/te-docs/raw/advanced-data-type.md +16 -0
- package/wiki/te-docs/raw/data-ingestion-guide/about-gdpr.md +55 -0
- package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/android/android-advanced/automatic-event-tracking.md +431 -0
- package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/android/android-advanced/debugging-and-logging.md +49 -0
- package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/android/android-advanced/multi-instance.md +66 -0
- package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/android/android-advanced/preset-properties.md +466 -0
- package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/android/android-advanced/third-party-integration.md +127 -0
- package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/android/android-advanced.md +513 -0
- package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/android/compliance.md +24 -0
- package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/android/release-notes.md +177 -0
- package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/android.md +228 -0
- package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/c/c-advanced.md +419 -0
- package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/c/release-notes.md +45 -0
- package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/c.md +110 -0
- package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/client-side-sdk-faq.md +52 -0
- package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/cpp/cpp-advanced.md +366 -0
- package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/cpp/release-notes.md +103 -0
- package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/cpp.md +201 -0
- package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/cross-platform/flutter/compliance.md +26 -0
- package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/cross-platform/flutter/flutter-advanced/automatically-track-events.md +117 -0
- package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/cross-platform/flutter/flutter-advanced/debugging-and-logging.md +47 -0
- package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/cross-platform/flutter/flutter-advanced/preset-properties.md +52 -0
- package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/cross-platform/flutter/flutter-advanced.md +267 -0
- package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/cross-platform/flutter/release-notes.md +82 -0
- package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/cross-platform/flutter.md +139 -0
- package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/cross-platform/react-native/compliance.md +26 -0
- package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/cross-platform/react-native/reactnative-advanced/automatically-track-events.md +121 -0
- package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/cross-platform/react-native/reactnative-advanced/debugging-and-logging.md +54 -0
- package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/cross-platform/react-native/reactnative-advanced/preset-properties.md +18 -0
- package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/cross-platform/react-native/reactnative-advanced.md +305 -0
- package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/cross-platform/react-native/release-notes.md +79 -0
- package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/cross-platform/react-native.md +137 -0
- package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/cross-platform/uni-app/release-notes.md +24 -0
- package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/cross-platform/uni-app/uniapp-advanced/automatically-track-events.md +54 -0
- package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/cross-platform/uni-app/uniapp-advanced/debugging-and-logging.md +53 -0
- package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/cross-platform/uni-app/uniapp-advanced/multi-instance.md +42 -0
- package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/cross-platform/uni-app/uniapp-advanced/preset-properties.md +119 -0
- package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/cross-platform/uni-app/uniapp-advanced/support-native.md +81 -0
- package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/cross-platform/uni-app/uniapp-advanced.md +331 -0
- package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/cross-platform/uni-app.md +156 -0
- package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/cross-platform.md +12 -0
- package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/game-engine/cocos2d-x/cocos2d-x-advanced/automatic-event-tracking.md +29 -0
- package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/game-engine/cocos2d-x/cocos2d-x-advanced/debugging-and-logging.md +47 -0
- package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/game-engine/cocos2d-x/cocos2d-x-advanced/multi-instance.md +21 -0
- package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/game-engine/cocos2d-x/cocos2d-x-advanced/preset-properties.md +249 -0
- package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/game-engine/cocos2d-x/cocos2d-x-advanced.md +301 -0
- package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/game-engine/cocos2d-x/compliance.md +24 -0
- package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/game-engine/cocos2d-x/release-notes.md +51 -0
- package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/game-engine/cocos2d-x.md +281 -0
- package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/game-engine/cocoscreator/cocoscreator-advance/automatic-event-tracking.md +70 -0
- package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/game-engine/cocoscreator/cocoscreator-advance/debugging-and-logging.md +57 -0
- package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/game-engine/cocoscreator/cocoscreator-advance/native-support.md +104 -0
- package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/game-engine/cocoscreator/cocoscreator-advance/preset-properties.md +91 -0
- package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/game-engine/cocoscreator/cocoscreator-advance.md +374 -0
- package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/game-engine/cocoscreator/compliance.md +35 -0
- package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/game-engine/cocoscreator/release-notes.md +109 -0
- package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/game-engine/cocoscreator.md +170 -0
- package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/game-engine/corona/compliance.md +28 -0
- package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/game-engine/corona/corona-advanced/automatic-event-tracking.md +29 -0
- package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/game-engine/corona/corona-advanced/debugging-and-logging.md +58 -0
- package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/game-engine/corona/corona-advanced/preset-properties.md +43 -0
- package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/game-engine/corona/corona-advanced.md +204 -0
- package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/game-engine/corona/release-notes.md +29 -0
- package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/game-engine/corona.md +269 -0
- package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/game-engine/unity/compliance.md +24 -0
- package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/game-engine/unity/release-notes.md +177 -0
- package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/game-engine/unity/unity-advanced/automatic-event-tracking.md +119 -0
- package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/game-engine/unity/unity-advanced/debugging-and-logging.md +47 -0
- package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/game-engine/unity/unity-advanced/multi-instance.md +50 -0
- package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/game-engine/unity/unity-advanced/native-pluggable.md +43 -0
- package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/game-engine/unity/unity-advanced/preset-properties.md +212 -0
- package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/game-engine/unity/unity-advanced/third-party-integration.md +77 -0
- package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/game-engine/unity/unity-advanced.md +396 -0
- package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/game-engine/unity.md +176 -0
- package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/game-engine/unreal/compliance.md +24 -0
- package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/game-engine/unreal/release-notes.md +81 -0
- package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/game-engine/unreal/unreal-advanced/automatic-event-tracking.md +79 -0
- package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/game-engine/unreal/unreal-advanced/debugging-and-logging.md +31 -0
- package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/game-engine/unreal/unreal-advanced/preset-properties.md +25 -0
- package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/game-engine/unreal/unreal-advanced/third-party-integrations.md +141 -0
- package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/game-engine/unreal/unreal-advanced.md +278 -0
- package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/game-engine/unreal.md +190 -0
- package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/game-engine.md +14 -0
- package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/h5-and-app-sdk-connection.md +147 -0
- package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/instant-app-and-game.md +24 -0
- package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/ios/compliance.md +24 -0
- package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/ios/ios-advanced/automatic-event-tracking.md +272 -0
- package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/ios/ios-advanced/debugging-and-logging.md +77 -0
- package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/ios/ios-advanced/multi-instance.md +142 -0
- package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/ios/ios-advanced/preset-properties.md +484 -0
- package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/ios/ios-advanced/third-party-integrations.md +132 -0
- package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/ios/ios-advanced.md +682 -0
- package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/ios/release-notes.md +163 -0
- package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/ios.md +304 -0
- package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/javascript/compliance.md +29 -0
- package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/javascript/javascript-advanced/automatic-event-tracking.md +136 -0
- package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/javascript/javascript-advanced/debugging-and-logging.md +48 -0
- package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/javascript/javascript-advanced/multi-instance.md +50 -0
- package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/javascript/javascript-advanced/preset-properties.md +132 -0
- package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/javascript/javascript-advanced.md +462 -0
- package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/javascript/release-notes.md +107 -0
- package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/javascript.md +208 -0
- package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/macos/macos-advanced/debugging-and-logging.md +62 -0
- package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/macos/macos-advanced/preset-properties.md +118 -0
- package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/macos/macos-advanced.md +556 -0
- package/wiki/te-docs/raw/data-ingestion-guide/client-sdk/macos.md +231 -0
- package/wiki/te-docs/raw/data-ingestion-guide/client-sdk.md +25 -0
- package/wiki/te-docs/raw/data-ingestion-guide/data-import-tools/filebeat-logstash-user-guide.md +610 -0
- package/wiki/te-docs/raw/data-ingestion-guide/data-import-tools/logbus2-user-guide.md +1215 -0
- package/wiki/te-docs/raw/data-ingestion-guide/data-import-tools/ta-datax-writer-plugin-user-guide.md +278 -0
- package/wiki/te-docs/raw/data-ingestion-guide/data-import-tools.md +15 -0
- package/wiki/te-docs/raw/data-ingestion-guide/privacy-policy.md +38 -0
- package/wiki/te-docs/raw/data-ingestion-guide/restful-api-user-guide.md +155 -0
- package/wiki/te-docs/raw/data-ingestion-guide/server-sdk/c/c-advanced/debugging-and-logging-FM9Cwz.md +37 -0
- package/wiki/te-docs/raw/data-ingestion-guide/server-sdk/c/c-advanced/debugging-and-logging-RSyfw7.md +41 -0
- package/wiki/te-docs/raw/data-ingestion-guide/server-sdk/c/c-advanced/debugging-and-logging.md +89 -0
- package/wiki/te-docs/raw/data-ingestion-guide/server-sdk/c/c-advanced/preset-properties-OxzWw.md +126 -0
- package/wiki/te-docs/raw/data-ingestion-guide/server-sdk/c/c-advanced/preset-properties-VuE3wr.md +126 -0
- package/wiki/te-docs/raw/data-ingestion-guide/server-sdk/c/c-advanced/preset-properties.md +126 -0
- package/wiki/te-docs/raw/data-ingestion-guide/server-sdk/c/c-advanced-IauKwI.md +175 -0
- package/wiki/te-docs/raw/data-ingestion-guide/server-sdk/c/c-advanced-YAilwk.md +210 -0
- package/wiki/te-docs/raw/data-ingestion-guide/server-sdk/c/c-advanced.md +211 -0
- package/wiki/te-docs/raw/data-ingestion-guide/server-sdk/c/release-notes-PVazwa.md +62 -0
- package/wiki/te-docs/raw/data-ingestion-guide/server-sdk/c/release-notes-TADbwY.md +50 -0
- package/wiki/te-docs/raw/data-ingestion-guide/server-sdk/c/release-notes.md +69 -0
- package/wiki/te-docs/raw/data-ingestion-guide/server-sdk/c-V2W3wv.md +131 -0
- package/wiki/te-docs/raw/data-ingestion-guide/server-sdk/c-Zf9Jwl.md +179 -0
- package/wiki/te-docs/raw/data-ingestion-guide/server-sdk/c.md +189 -0
- package/wiki/te-docs/raw/data-ingestion-guide/server-sdk/erlang/erlang-advanced/debugging-and-logging.md +38 -0
- package/wiki/te-docs/raw/data-ingestion-guide/server-sdk/erlang/erlang-advanced/preset-properties.md +126 -0
- package/wiki/te-docs/raw/data-ingestion-guide/server-sdk/erlang/erlang-advanced.md +113 -0
- package/wiki/te-docs/raw/data-ingestion-guide/server-sdk/erlang/release-notes.md +34 -0
- package/wiki/te-docs/raw/data-ingestion-guide/server-sdk/erlang.md +155 -0
- package/wiki/te-docs/raw/data-ingestion-guide/server-sdk/golang/golang-advanced/debugging-and-logging.md +42 -0
- package/wiki/te-docs/raw/data-ingestion-guide/server-sdk/golang/golang-advanced/preset-properties.md +126 -0
- package/wiki/te-docs/raw/data-ingestion-guide/server-sdk/golang/golang-advanced.md +157 -0
- package/wiki/te-docs/raw/data-ingestion-guide/server-sdk/golang/release-notes.md +72 -0
- package/wiki/te-docs/raw/data-ingestion-guide/server-sdk/golang.md +148 -0
- package/wiki/te-docs/raw/data-ingestion-guide/server-sdk/java/java-advanced/debugging-and-logging.md +49 -0
- package/wiki/te-docs/raw/data-ingestion-guide/server-sdk/java/java-advanced/preset-properties.md +126 -0
- package/wiki/te-docs/raw/data-ingestion-guide/server-sdk/java/java-advanced.md +223 -0
- package/wiki/te-docs/raw/data-ingestion-guide/server-sdk/java/release-notes.md +88 -0
- package/wiki/te-docs/raw/data-ingestion-guide/server-sdk/java.md +174 -0
- package/wiki/te-docs/raw/data-ingestion-guide/server-sdk/lua/lua-advanced/debugging-and-logging.md +46 -0
- package/wiki/te-docs/raw/data-ingestion-guide/server-sdk/lua/lua-advanced/preset-properties.md +126 -0
- package/wiki/te-docs/raw/data-ingestion-guide/server-sdk/lua/lua-advanced.md +182 -0
- package/wiki/te-docs/raw/data-ingestion-guide/server-sdk/lua/release-notes.md +61 -0
- package/wiki/te-docs/raw/data-ingestion-guide/server-sdk/lua.md +121 -0
- package/wiki/te-docs/raw/data-ingestion-guide/server-sdk/nodejs/nodejs-advanced/debugging-and-logging.md +55 -0
- package/wiki/te-docs/raw/data-ingestion-guide/server-sdk/nodejs/nodejs-advanced/preset-properties.md +126 -0
- package/wiki/te-docs/raw/data-ingestion-guide/server-sdk/nodejs/nodejs-advanced.md +225 -0
- package/wiki/te-docs/raw/data-ingestion-guide/server-sdk/nodejs/release-notes.md +45 -0
- package/wiki/te-docs/raw/data-ingestion-guide/server-sdk/nodejs.md +141 -0
- package/wiki/te-docs/raw/data-ingestion-guide/server-sdk/php/php-advanced/debugging-and-logging.md +41 -0
- package/wiki/te-docs/raw/data-ingestion-guide/server-sdk/php/php-advanced/preset-properties.md +126 -0
- package/wiki/te-docs/raw/data-ingestion-guide/server-sdk/php/php-advanced.md +216 -0
- package/wiki/te-docs/raw/data-ingestion-guide/server-sdk/php/release-notes.md +45 -0
- package/wiki/te-docs/raw/data-ingestion-guide/server-sdk/php.md +173 -0
- package/wiki/te-docs/raw/data-ingestion-guide/server-sdk/python/python-advanced/debugging-and-logging.md +40 -0
- package/wiki/te-docs/raw/data-ingestion-guide/server-sdk/python/python-advanced/preset-properties.md +126 -0
- package/wiki/te-docs/raw/data-ingestion-guide/server-sdk/python/python-advanced.md +206 -0
- package/wiki/te-docs/raw/data-ingestion-guide/server-sdk/python/release-notes.md +51 -0
- package/wiki/te-docs/raw/data-ingestion-guide/server-sdk/python.md +116 -0
- package/wiki/te-docs/raw/data-ingestion-guide/server-sdk/ruby/release-notes.md +44 -0
- package/wiki/te-docs/raw/data-ingestion-guide/server-sdk/ruby/ruby-advanced/debugging-and-logging.md +47 -0
- package/wiki/te-docs/raw/data-ingestion-guide/server-sdk/ruby/ruby-advanced/preset-properties.md +126 -0
- package/wiki/te-docs/raw/data-ingestion-guide/server-sdk/ruby/ruby-advanced.md +189 -0
- package/wiki/te-docs/raw/data-ingestion-guide/server-sdk/ruby.md +142 -0
- package/wiki/te-docs/raw/data-ingestion-guide/server-sdk.md +22 -0
- package/wiki/te-docs/raw/data-ingestion-guide/thinkingdata-privacy-policy.md +37 -0
- package/wiki/te-docs/raw/data-ingestion-guide.md +48 -0
- package/wiki/te-docs/raw/preparations-before-data-ingestion/data-rules.md +396 -0
- package/wiki/te-docs/raw/preparations-before-data-ingestion/preset-properties-and-system-fields.md +957 -0
- package/wiki/te-docs/raw/preparations-before-data-ingestion/user-identification-rules.md +723 -0
- package/wiki/te-docs/raw/preparations-before-data-ingestion.md +203 -0
- package/wiki/te-docs/raw//345/256/242/346/210/267/347/253/257-sdk/openharmony//345/220/210/350/247/204/346/214/207/345/215/227.md +96 -0
- package/wiki/te-docs/raw//345/256/242/346/210/267/347/253/257-sdk/openharmony//346/233/264/346/226/260/346/227/245/345/277/227.md +97 -0
- package/wiki/te-docs/raw//345/256/242/346/210/267/347/253/257-sdk/openharmony//350/277/233/351/230/266/346/214/207/345/215/227//345/244/232/345/256/236/344/276/213.md +52 -0
- package/wiki/te-docs/raw//345/256/242/346/210/267/347/253/257-sdk/openharmony//350/277/233/351/230/266/346/214/207/345/215/227//345/256/236/346/227/266/350/260/203/350/257/225.md +48 -0
- package/wiki/te-docs/raw//345/256/242/346/210/267/347/253/257-sdk/openharmony//350/277/233/351/230/266/346/214/207/345/215/227//351/242/204/347/275/256/345/261/236/346/200/247.md +447 -0
- package/wiki/te-docs/raw//345/256/242/346/210/267/347/253/257-sdk/openharmony//350/277/233/351/230/266/346/214/207/345/215/227.md +370 -0
- package/wiki/te-docs/raw//345/256/242/346/210/267/347/253/257-sdk/openharmony.md +172 -0
- package/wiki/te-docs/raw//345/256/242/346/210/267/347/253/257-sdk//345/260/217/347/250/213/345/272/217/345/260/217/346/270/270/346/210/217//345/220/210/350/247/204/346/214/207/345/215/227.md +37 -0
- package/wiki/te-docs/raw//345/256/242/346/210/267/347/253/257-sdk//345/260/217/347/250/213/345/272/217/345/260/217/346/270/270/346/210/217//346/233/264/346/226/260/346/227/245/345/277/227.md +209 -0
- package/wiki/te-docs/raw//345/256/242/346/210/267/347/253/257-sdk//345/260/217/347/250/213/345/272/217/345/260/217/346/270/270/346/210/217//350/277/233/351/230/266/346/214/207/345/215/227//345/244/232/345/256/236/344/276/213.md +71 -0
- package/wiki/te-docs/raw//345/256/242/346/210/267/347/253/257-sdk//345/260/217/347/250/213/345/272/217/345/260/217/346/270/270/346/210/217//350/277/233/351/230/266/346/214/207/345/215/227//345/256/236/346/227/266/350/260/203/350/257/225.md +49 -0
- package/wiki/te-docs/raw//345/256/242/346/210/267/347/253/257-sdk//345/260/217/347/250/213/345/272/217/345/260/217/346/270/270/346/210/217//350/277/233/351/230/266/346/214/207/345/215/227//350/207/252/345/212/250/351/207/207/351/233/206.md +125 -0
- package/wiki/te-docs/raw//345/256/242/346/210/267/347/253/257-sdk//345/260/217/347/250/213/345/272/217/345/260/217/346/270/270/346/210/217//350/277/233/351/230/266/346/214/207/345/215/227//351/242/204/347/275/256/345/261/236/346/200/247.md +498 -0
- package/wiki/te-docs/raw//345/256/242/346/210/267/347/253/257-sdk//345/260/217/347/250/213/345/272/217/345/260/217/346/270/270/346/210/217//350/277/233/351/230/266/346/214/207/345/215/227.md +612 -0
- package/wiki/te-docs/raw//345/256/242/346/210/267/347/253/257-sdk//345/260/217/347/250/213/345/272/217/345/260/217/346/270/270/346/210/217.md +373 -0
- package/wiki/te-docs/raw//345/256/242/346/210/267/347/253/257-sdk//346/270/270/346/210/217/345/274/225/346/223/216/cocos2d-lua//345/220/210/350/247/204/346/214/207/345/215/227.md +26 -0
- package/wiki/te-docs/raw//345/256/242/346/210/267/347/253/257-sdk//346/270/270/346/210/217/345/274/225/346/223/216/cocos2d-lua//346/233/264/346/226/260/346/227/245/345/277/227.md +32 -0
- package/wiki/te-docs/raw//345/256/242/346/210/267/347/253/257-sdk//346/270/270/346/210/217/345/274/225/346/223/216/cocos2d-lua//350/277/233/351/230/266/346/214/207/345/215/227//345/256/236/346/227/266/350/260/203/350/257/225.md +48 -0
- package/wiki/te-docs/raw//345/256/242/346/210/267/347/253/257-sdk//346/270/270/346/210/217/345/274/225/346/223/216/cocos2d-lua//350/277/233/351/230/266/346/214/207/345/215/227//350/207/252/345/212/250/351/207/207/351/233/206.md +30 -0
- package/wiki/te-docs/raw//345/256/242/346/210/267/347/253/257-sdk//346/270/270/346/210/217/345/274/225/346/223/216/cocos2d-lua//350/277/233/351/230/266/346/214/207/345/215/227//351/242/204/347/275/256/345/261/236/346/200/247.md +61 -0
- package/wiki/te-docs/raw//345/256/242/346/210/267/347/253/257-sdk//346/270/270/346/210/217/345/274/225/346/223/216/cocos2d-lua//350/277/233/351/230/266/346/214/207/345/215/227.md +236 -0
- package/wiki/te-docs/raw//345/256/242/346/210/267/347/253/257-sdk//346/270/270/346/210/217/345/274/225/346/223/216/cocos2d-lua.md +200 -0
- package/wiki/te-docs/raw//345/256/242/346/210/267/347/253/257-sdk//346/270/270/346/210/217/345/274/225/346/223/216/egret//346/233/264/346/226/260/346/227/245/345/277/227.md +83 -0
- package/wiki/te-docs/raw//345/256/242/346/210/267/347/253/257-sdk//346/270/270/346/210/217/345/274/225/346/223/216/egret//350/277/233/351/230/266/346/214/207/345/215/227/native/346/224/257/346/214/201.md +66 -0
- package/wiki/te-docs/raw//345/256/242/346/210/267/347/253/257-sdk//346/270/270/346/210/217/345/274/225/346/223/216/egret//350/277/233/351/230/266/346/214/207/345/215/227//345/256/236/346/227/266/350/260/203/350/257/225.md +54 -0
- package/wiki/te-docs/raw//345/256/242/346/210/267/347/253/257-sdk//346/270/270/346/210/217/345/274/225/346/223/216/egret//350/277/233/351/230/266/346/214/207/345/215/227//350/207/252/345/212/250/351/207/207/351/233/206.md +62 -0
- package/wiki/te-docs/raw//345/256/242/346/210/267/347/253/257-sdk//346/270/270/346/210/217/345/274/225/346/223/216/egret//350/277/233/351/230/266/346/214/207/345/215/227//351/242/204/347/275/256/345/261/236/346/200/247.md +358 -0
- package/wiki/te-docs/raw//345/256/242/346/210/267/347/253/257-sdk//346/270/270/346/210/217/345/274/225/346/223/216/egret//350/277/233/351/230/266/346/214/207/345/215/227.md +615 -0
- package/wiki/te-docs/raw//345/256/242/346/210/267/347/253/257-sdk//346/270/270/346/210/217/345/274/225/346/223/216/egret.md +166 -0
- package/wiki/te-docs/raw//345/256/242/346/210/267/347/253/257-sdk//346/270/270/346/210/217/345/274/225/346/223/216/layaair//346/233/264/346/226/260/346/227/245/345/277/227.md +87 -0
- package/wiki/te-docs/raw//345/256/242/346/210/267/347/253/257-sdk//346/270/270/346/210/217/345/274/225/346/223/216/layaair//350/277/233/351/230/266/346/214/207/345/215/227/native/346/224/257/346/214/201.md +71 -0
- package/wiki/te-docs/raw//345/256/242/346/210/267/347/253/257-sdk//346/270/270/346/210/217/345/274/225/346/223/216/layaair//350/277/233/351/230/266/346/214/207/345/215/227//345/256/236/346/227/266/350/260/203/350/257/225.md +54 -0
- package/wiki/te-docs/raw//345/256/242/346/210/267/347/253/257-sdk//346/270/270/346/210/217/345/274/225/346/223/216/layaair//350/277/233/351/230/266/346/214/207/345/215/227//350/207/252/345/212/250/351/207/207/351/233/206.md +61 -0
- package/wiki/te-docs/raw//345/256/242/346/210/267/347/253/257-sdk//346/270/270/346/210/217/345/274/225/346/223/216/layaair//350/277/233/351/230/266/346/214/207/345/215/227//351/242/204/347/275/256/345/261/236/346/200/247.md +406 -0
- package/wiki/te-docs/raw//345/256/242/346/210/267/347/253/257-sdk//346/270/270/346/210/217/345/274/225/346/223/216/layaair//350/277/233/351/230/266/346/214/207/345/215/227.md +597 -0
- package/wiki/te-docs/raw//345/256/242/346/210/267/347/253/257-sdk//346/270/270/346/210/217/345/274/225/346/223/216/layaair.md +179 -0
- package/wiki/te-docs/schema.md +16 -0
- package/wiki/te-docs/synthesis/batch-ingest-comparison.md +324 -0
- package/wiki/te-docs/synthesis/js-sdk-cheatsheet.md +538 -0
- package/wiki/te-docs/synthesis/restful-api-reference.md +363 -0
- package/wiki/te-docs/synthesis/sdk-selection.md +372 -0
- package/wiki/te-docs/synthesis/server-sdk-overview.md +449 -0
- package/dist/chunk-KAEZTSXN.js +0 -99
- package/dist/chunk-OJDNO5QY.js +0 -63
|
@@ -0,0 +1,179 @@
|
|
|
1
|
+
---
|
|
2
|
+
code: laya_sdk_installation
|
|
3
|
+
name: "LayaAir"
|
|
4
|
+
wikiToken: DwgQwnSQpibhLEkcrR8cQbaHnKg
|
|
5
|
+
parentWikiToken: G5xvwevvSi8u93kR0RwcN52MnFc
|
|
6
|
+
updateTime: 1780571688000
|
|
7
|
+
sourceUrl: https://docs-v2.thinkingdata.cn/?version=v6.0&lan=zh-CN&code=laya_sdk_installation
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
::: tip 提示
|
|
11
|
+
在接入前, 请先阅读[<text color="purple" underline="true">接入前准备</text>](https://thinkingdata.feishu.cn/wiki/OvpawZlw1idmxzkwiJWcxlfNnNc)。
|
|
12
|
+
LayaAir SDK 支持平台:iOS、Android、Web、微信小游戏、华为快游戏、字节跳动小游戏、bilibili小游戏、vivo小游戏、OPPO小游戏、小米快游戏、百度小游戏、QQ小游戏、淘宝创意互动小程序、支付宝小游戏、WKWebView。
|
|
13
|
+
:::
|
|
14
|
+
**最新版本: **v3.6.1
|
|
15
|
+
**更新时间: **2026-06-04
|
|
16
|
+
**资源下载**: [源码](https://github.com/ThinkingDataAnalytics/mp-sdk/tags)、[SDK下载](https://download.thinkingdata.cn/client/MPMG/ta_laya_sdk_v3.6.1.zip)
|
|
17
|
+
::: warning 注意
|
|
18
|
+
当前文档适用于 v3.0.0 及以后的版本,历史版本请参考 [LayaAir 接入指南(V2)](https://docs.thinkingdata.cn/ta-manual/v4.1/installation/installation_menu/client_sdk/game_engine_sdk_installation/laya_sdk_installation/laya_sdk_installation.html),[SDK下载(v2.2.4)](https://download.thinkingdata.cn/client/MPMG/ta_laya_sdk_v3.0.0-beta.1.zip)
|
|
19
|
+
:::
|
|
20
|
+
## 一、集成SDK
|
|
21
|
+
下载并解压 [LayaAir SDK](https://download.thinkingdata.cn/client/MPMG/ta_laya_sdk_v3.6.1.zip)
|
|
22
|
+
:::: el-tabs
|
|
23
|
+
::: el-tab-pane label=TypeScript 集成
|
|
24
|
+
如果您的项目是 TypeScript 工程,接入步骤如下:
|
|
25
|
+
1. 将声明文件 tdanalytics.laya.d.ts 放入 libs 目录
|
|
26
|
+
2. 将 SDK 文件(tdanalytics.mg.layats.min.js)放入 bin/js 目录中
|
|
27
|
+
3. 修改 bin/index.js 文件,加载 AE SDK:
|
|
28
|
+
```javascript
|
|
29
|
+
// 在加载 bundle.js 之前加载 AE SDK
|
|
30
|
+
loadLib("js/tdanalytics.mg.layats.min.js");
|
|
31
|
+
loadLib("js/bundle.js");
|
|
32
|
+
```
|
|
33
|
+
|
|
34
|
+
:::
|
|
35
|
+
::: el-tab-pane label=JavaScript 集成
|
|
36
|
+
如果您的项目是 JavaScript 工程,您可以直接将 `tdanalytics.mg.laya.min.js` 放入您的工程中,在源码中引用:
|
|
37
|
+
```javascript
|
|
38
|
+
import TDAnalytics from "./tdanalytics.mg.laya.min";
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
:::
|
|
42
|
+
::::
|
|
43
|
+
## 二、初始化
|
|
44
|
+
引入 AE SDK 后,您可以在代码中使用 TDAnalytics:
|
|
45
|
+
```javascript
|
|
46
|
+
// TE SDK 配置对象
|
|
47
|
+
var config = {
|
|
48
|
+
appId: "YOUR_APPID", // 项目 APP ID
|
|
49
|
+
serverUrl: "YOUR_SERVER_URL", // 上报地址
|
|
50
|
+
autoTrack: {
|
|
51
|
+
appLaunch: true, // 自动采集 ta_mg_launch
|
|
52
|
+
appShow: true, // 自动采集 ta_mg_show
|
|
53
|
+
appHide: true // 自动采集 ta_mg_hide
|
|
54
|
+
}
|
|
55
|
+
};
|
|
56
|
+
// 初始化
|
|
57
|
+
TDAnalytics.init(config);
|
|
58
|
+
```
|
|
59
|
+
|
|
60
|
+
AE 配置对象参数说明如下:
|
|
61
|
+
- `appId`: 您项目的 APP ID,必需, 可以在 AE 后台项目管理页查看
|
|
62
|
+
- `serverUrl`: 数据上报 URL,必需
|
|
63
|
+
- 如果您使用的是云服务,填入: https://global-receiver-ta.thinkingdata.cn
|
|
64
|
+
- 如果您使用的是私有化部署的版本,请与运维同学确认上报地址
|
|
65
|
+
- `autoTrack`:可选, 表示是否开启自动采集功能,每一个元素分别代表如下的自动采集事件,默认全部关闭:
|
|
66
|
+
- `appLaunch`:自动采集小程序初始化
|
|
67
|
+
- `appShow`:自动采集小游戏启动,或从后台进入前台
|
|
68
|
+
- `appHide`:自动采集小游戏从前台进入后台,并记录本次访问(启动至调入后台)的时间
|
|
69
|
+
::: warning 注意
|
|
70
|
+
在上报数据之前,请先在微信公众平台或其他平台的开发设置中,将数据传输 URL 加入到服务器域名的 request 列表中.
|
|
71
|
+
:::
|
|
72
|
+
## 三、常用功能
|
|
73
|
+
在使用常用功能之前,建议你先了解[用户识别规则](https://thinkingdata.feishu.cn/wiki/AUyiw6XZsiF9EMk2fBScKjzunjd);SDK默认会生成随机数作为访客ID,并持久化存储访客ID在本地;用户未登录之前,会以访客ID作为身份识别ID。注意:访客 ID 在用户清理缓存 以及更换设备时将会变更。
|
|
74
|
+
### 3.1 设置账号ID
|
|
75
|
+
在用户进行登录时,可调用 `login` 来设置用户的账号 ID, AE 平台将会以账号 ID 作为身份识别 ID,并且设置的账号 ID 将会在调用 `logout` 之前一直保留。多次调用 `login` 将覆盖先前的账号 ID 。
|
|
76
|
+
```javascript
|
|
77
|
+
// 用户的登录唯一标识,此数据对应上报数据里的#account_id,此时#account_id的值为TA
|
|
78
|
+
TDAnalytics.login("TA");
|
|
79
|
+
```
|
|
80
|
+
|
|
81
|
+
<quote-container>
|
|
82
|
+
**该方法不会上传登录事件**
|
|
83
|
+
</quote-container>
|
|
84
|
+
|
|
85
|
+
### 3.2 设置公共事件属性
|
|
86
|
+
公共事件属性指的就是每个事件都会带有的属性,您可以调用 `setSuperProperties` 来设置公共事件属性,我们推荐您在发送事件前,先设置公共事件属性。对于一些重要的属性,譬如用户的会员等级、来源渠道等,这些属性需要设置在每个事件中,此时您可以将这些属性设置为公共事件属性。
|
|
87
|
+
```javascript
|
|
88
|
+
var superProperties = {
|
|
89
|
+
channel : "ta", //字符串
|
|
90
|
+
age : 1,//数字
|
|
91
|
+
isSuccess : true,//布尔
|
|
92
|
+
birthday : new Date(),//对象
|
|
93
|
+
object : { key : "value" },//对象
|
|
94
|
+
object_arr : [ { key : "value" } ],//对象组
|
|
95
|
+
arr : [ "value" ]//数组
|
|
96
|
+
};
|
|
97
|
+
TDAnalytics.setSuperProperties(superProperties);//设置公共事件属性
|
|
98
|
+
```
|
|
99
|
+
|
|
100
|
+
公共事件属性将会被保存到缓存中,无需每次启动时调用。如果调用 `setSuperProperties` 上传了先前已设置过的公共事件属性,则会覆盖之前的属性。
|
|
101
|
+
- Key 为该属性的名称,为字符串类型,规定只能以字母开头,包含数字,字母和下划线 "_",长度最大为 50 个字符,对字母大小写不敏感,AE 会统一转化为小写字母
|
|
102
|
+
- Value 为该属性的值,支持字符串、数字、布尔、时间、对象、对象组、数组
|
|
103
|
+
<quote-container>
|
|
104
|
+
**事件属性、用户属性的要求与公共事件属性保持一致**
|
|
105
|
+
</quote-container>
|
|
106
|
+
|
|
107
|
+
### 3.3 发送事件
|
|
108
|
+
您可以调用 `track` 来上传事件,建议您根据先前梳理的埋点文档来设置事件的属性以及发送信息的条件,此处以用户购买某商品作为范例:
|
|
109
|
+
```javascript
|
|
110
|
+
TDAnalytics.track({
|
|
111
|
+
eventName: "product_buy", // 事件名称
|
|
112
|
+
properties: {
|
|
113
|
+
product_name: "商品名"
|
|
114
|
+
} //事件属性
|
|
115
|
+
});
|
|
116
|
+
```
|
|
117
|
+
|
|
118
|
+
事件的名称是字符串类型,只能以字母开头,可包含数字,字母和下划线 "_",长度最大为 50 个字符。
|
|
119
|
+
### 3.4 设置用户属性
|
|
120
|
+
对于一般的用户属性,您可以调用 `userSet` 来进行设置,使用该接口上传的属性将会覆盖原有的属性值,如果之前不存在该用户属性,则会新建该用户属性,类型与传入属性的类型一致,此处以设置用户名为例:
|
|
121
|
+
```javascript
|
|
122
|
+
//此时username为TA
|
|
123
|
+
TDAnalytics.userSet({
|
|
124
|
+
properties: {
|
|
125
|
+
username: "TA"
|
|
126
|
+
}
|
|
127
|
+
});
|
|
128
|
+
//此时userName为AE
|
|
129
|
+
TDAnalytics.userSet({
|
|
130
|
+
properties: {
|
|
131
|
+
username: "TE"
|
|
132
|
+
}
|
|
133
|
+
});
|
|
134
|
+
```
|
|
135
|
+
|
|
136
|
+
## 四、最佳实践
|
|
137
|
+
以下示例代码包含以上所有操作,我们推荐按照如下步骤使用:
|
|
138
|
+
```javascript
|
|
139
|
+
var TDAnalytics = require("./tdanalytics.wx.min.js");
|
|
140
|
+
var config = {
|
|
141
|
+
appId: "YOU-APP-ID", // 项目的 APP ID
|
|
142
|
+
serverUrl: "https://youserverurl.com", // 数据上报地址
|
|
143
|
+
autoTrack: {
|
|
144
|
+
appLaunch: true, // 自动采集 ta_mp_launch
|
|
145
|
+
appShow: true, // 自动采集 ta_mp_show
|
|
146
|
+
appHide: true, // 自动采集 ta_mp_hide
|
|
147
|
+
pageShow: true, // 自动采集 ta_mp_view
|
|
148
|
+
pageShare: true // 自动采集 ta_mp_share
|
|
149
|
+
}
|
|
150
|
+
};
|
|
151
|
+
// 初始化
|
|
152
|
+
TDAnalytics.init(config);
|
|
153
|
+
// 用户的登录唯一标识,此数据对应上报数据里的#account_id,此时#account_id的值为TA
|
|
154
|
+
TDAnalytics.login("TA");
|
|
155
|
+
//设置公共事件属性
|
|
156
|
+
var superProperties = {
|
|
157
|
+
channel : "ta", //字符串
|
|
158
|
+
age : 1,//数字
|
|
159
|
+
isSuccess : true,//布尔
|
|
160
|
+
birthday : new Date(),//对象
|
|
161
|
+
object : { key : "value" },//对象
|
|
162
|
+
object_arr : [ { key : "value" } ],//对象组
|
|
163
|
+
arr : [ "value" ]//数组
|
|
164
|
+
};
|
|
165
|
+
TDAnalytics.setSuperProperties(superProperties);
|
|
166
|
+
//发送事件
|
|
167
|
+
TDAnalytics.track({
|
|
168
|
+
eventName: "product_buy", // 事件名称
|
|
169
|
+
properties: {
|
|
170
|
+
product_name: "商品名"
|
|
171
|
+
} //事件属性
|
|
172
|
+
});
|
|
173
|
+
//设置用户属性
|
|
174
|
+
TDAnalytics.userSet({
|
|
175
|
+
properties: {
|
|
176
|
+
username: "TE"
|
|
177
|
+
}
|
|
178
|
+
});
|
|
179
|
+
```
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
# AE docs Wiki Schema
|
|
2
|
+
|
|
3
|
+
## Layout
|
|
4
|
+
- `index.md` — catalog of pages with raw paths and source URLs
|
|
5
|
+
- `raw/` — Feishu docx → markdown mirror (read-only, crawler-owned)
|
|
6
|
+
- `synthesis/` — topic pages authored by synthesizer agents
|
|
7
|
+
|
|
8
|
+
## Query flow for consuming skills
|
|
9
|
+
1. Read `index.md` first.
|
|
10
|
+
2. For topic overviews, prefer `synthesis/`.
|
|
11
|
+
3. For exact API / config lookup, read `raw/`.
|
|
12
|
+
4. Cite `sourceUrl` from page frontmatter when quoting.
|
|
13
|
+
|
|
14
|
+
## Rules
|
|
15
|
+
- Do not edit `raw/` — it is regenerated by the crawler.
|
|
16
|
+
- Hand-authored or LLM-synthesized notes go in `synthesis/`.
|
|
@@ -0,0 +1,324 @@
|
|
|
1
|
+
---
|
|
2
|
+
topic: Batch Ingestion Comparison
|
|
3
|
+
sources:
|
|
4
|
+
- raw/data-ingestion-guide/data-import-tools.md
|
|
5
|
+
- raw/data-ingestion-guide/data-import-tools/logbus2-user-guide.md
|
|
6
|
+
- raw/data-ingestion-guide/data-import-tools/logbus-user-guide.md
|
|
7
|
+
- raw/data-ingestion-guide/data-import-tools/ta-datax-writer-plugin-user-guide.md
|
|
8
|
+
- raw/data-ingestion-guide/data-import-tools/filebeat-logstash-user-guide.md
|
|
9
|
+
- raw/data-ingestion-guide/data-import-tools/logbus-windows-user-guide.md
|
|
10
|
+
generated: 2026-06-16
|
|
11
|
+
---
|
|
12
|
+
|
|
13
|
+
## Overview
|
|
14
|
+
|
|
15
|
+
ThinkingData provides four primary tools for batch data ingestion into the TA platform:
|
|
16
|
+
**LogBus2**, **LogBus (v1)**, **DataX Writer**, and **Filebeat + Logstash**.
|
|
17
|
+
Each tool serves distinct use cases, from real-time log tailing to one-off historical data
|
|
18
|
+
migration. This document compares their architectures, performance characteristics,
|
|
19
|
+
deployment complexity, and recommended use cases to help you select the right tool.
|
|
20
|
+
|
|
21
|
+
---
|
|
22
|
+
|
|
23
|
+
## Quick-Reference Comparison Table
|
|
24
|
+
|
|
25
|
+
| Dimension | LogBus2 | LogBus (v1) | DataX Writer | Filebeat + Logstash |
|
|
26
|
+
|---|---|---|---|---|
|
|
27
|
+
| **Current version** | 2.1.1.6 (Dec 2024) | 1.5.15.7 (Dec 2021) | DataX plugin | Logstash plugin v1.0.0 (Jun 2020) |
|
|
28
|
+
| **Language / Runtime** | Go (native binary) | Java (JDK 8+) | Java (DataX framework) | Java (Logstash) + Go (Filebeat) |
|
|
29
|
+
| **Memory footprint** | ~1/5 of LogBus v1 | Higher (JVM, ~2GB default max) | Depends on DataX job config | Filebeat ~10MB; Logstash JVM heavy |
|
|
30
|
+
| **Throughput** | 5x faster than LogBus v1 | Moderate | High (parallel channels + threads) | **Low** (explicitly noted; not for bulk) |
|
|
31
|
+
| **Data sources** | File (Glob), Kafka, SLS (Aliyun) | File (regex/Glob), Kafka | Any DataX reader (MySQL, HDFS, Hive, etc.) | File (via Filebeat) |
|
|
32
|
+
| **Primary use case** | Real-time + bulk; server SDK logs, Kafka pipelines | Real-time + bulk; legacy deployments | Batch historical data migration from databases/data warehouses | Lightweight real-time log tailing; existing ELK shops |
|
|
33
|
+
| **Deployment platforms** | Linux, macOS, Windows, Docker, K8s (Helm) | Linux, Windows (separate build), Docker | Anywhere DataX runs (Linux/macOS) | Anywhere ELK stack runs |
|
|
34
|
+
| **Compression** | gzip, none (HTTP layer) | gzip, lzo, lz4, snappy, none | gzip, lzo, lz4, snappy (DataX level) | gzip, none (Logstash output plugin) |
|
|
35
|
+
| **Multi-tenancy** | Multi APP_ID per instance, multi-pipeline | Multi APP_ID per instance | One APP_ID per job config | One APP_ID per Logstash output |
|
|
36
|
+
| **Monitoring** | Prometheus + Grafana dashboards, progress command | status, progress, doctor commands | DataX built-in job metrics | ELK-native monitoring (Elastic) |
|
|
37
|
+
| **Custom parsing** | gRPC plugin system | Java CustomInterceptor | DataX reader/writer column mapping | Ruby filter scripts |
|
|
38
|
+
| **Windows support** | Yes (native, v2.1.1.6) | Yes (v1.3.0, file source only) | No (DataX only) | Yes (Filebeat + Logstash) |
|
|
39
|
+
|
|
40
|
+
---
|
|
41
|
+
|
|
42
|
+
## Tool-by-Tool Analysis
|
|
43
|
+
|
|
44
|
+
### LogBus2
|
|
45
|
+
|
|
46
|
+
LogBus2 is the **recommended real-time ingestion tool** and the direct successor to the
|
|
47
|
+
original LogBus. It was rewritten in Go for dramatically lower resource consumption and
|
|
48
|
+
higher throughput.
|
|
49
|
+
|
|
50
|
+
**Architecture**: A single Go binary (`logbus`) that monitors data sources and pushes
|
|
51
|
+
data to the TA receiver over HTTP. It maintains a runtime directory with consumption
|
|
52
|
+
offset snapshots, enabling crash recovery without data loss (provided files are not
|
|
53
|
+
deleted before consumption completes).
|
|
54
|
+
|
|
55
|
+
**Data Sources**:
|
|
56
|
+
- **File**: Glob pattern matching against local log directories. Supports auto-deletion
|
|
57
|
+
policies (`unit_remove` + `offset_remove`) and directory cleanup.
|
|
58
|
+
- **Kafka**: Full consumer group support with SASL authentication (PLAIN, SCRAM-SHA-256,
|
|
59
|
+
SCRAM-SHA-512), cloud provider presets (Aliyun, Tencent, Huawei), and transactional
|
|
60
|
+
read support (`read_committed`).
|
|
61
|
+
- **SLS (Aliyun Log Service)**: Via Kafka protocol bridge (requires Aliyun-side
|
|
62
|
+
enablement).
|
|
63
|
+
|
|
64
|
+
**Performance Features**:
|
|
65
|
+
- CPU limit via `cpu_limit` config (default: unlimited)
|
|
66
|
+
- IOPS throttling (`limit` + `iops` config)
|
|
67
|
+
- HTTP compression (gzip) for bandwidth savings
|
|
68
|
+
- SIMD-accelerated JSON processing (since 2.1.1.4)
|
|
69
|
+
- Configurable `http_timeout` (200ms–600s, default 600s)
|
|
70
|
+
|
|
71
|
+
**Operational Commands**:
|
|
72
|
+
```shell
|
|
73
|
+
./logbus start # Start ingestion
|
|
74
|
+
./logbus stop # Graceful stop (no data loss)
|
|
75
|
+
./logbus restart # Restart to pick up config changes
|
|
76
|
+
./logbus env # Verify config + TA connectivity
|
|
77
|
+
./logbus progress # View per-file transmission progress
|
|
78
|
+
./logbus dev # Validate file format locally
|
|
79
|
+
./logbus reset # Clear all read offsets (use with caution)
|
|
80
|
+
./logbus update # Self-update to latest version
|
|
81
|
+
```
|
|
82
|
+
|
|
83
|
+
**Deployment Options**:
|
|
84
|
+
- **Bare metal**: Download tarball, edit `conf/daemon.json`, run `./logbus start`
|
|
85
|
+
- **Docker**: Prebuilt image `thinkingdata/ta-logbus-v2:latest`; mount data, conf, log,
|
|
86
|
+
and runtime directories as volumes
|
|
87
|
+
- **Kubernetes**: Helm chart with StatefulSet; PVC-backed for persistence; each pod
|
|
88
|
+
handles its own file patterns via `container:` prefix in `values.yaml`
|
|
89
|
+
|
|
90
|
+
**Limitations**:
|
|
91
|
+
- Kafka source does not support the `progress`, `reset`, or `dev` commands as of v2.1.1.6
|
|
92
|
+
- Kafka consumption is load-balance mode; number of LogBus2 instances must not exceed
|
|
93
|
+
partition count
|
|
94
|
+
- File patterns do not support regular expressions (Glob only)
|
|
95
|
+
|
|
96
|
+
**When to choose LogBus2**:
|
|
97
|
+
- You need the highest throughput with the lowest resource footprint
|
|
98
|
+
- You are starting a new deployment (greenfield)
|
|
99
|
+
- You need K8s-native deployment
|
|
100
|
+
- You require Prometheus/Grafana monitoring integration
|
|
101
|
+
- You are consuming from Kafka or SLS
|
|
102
|
+
|
|
103
|
+
---
|
|
104
|
+
|
|
105
|
+
### LogBus (v1)
|
|
106
|
+
|
|
107
|
+
The original LogBus, built on Apache Flume (Java). It is **mature and stable** but no
|
|
108
|
+
longer receives major feature updates. The last release (1.5.15.7) was a security patch
|
|
109
|
+
for the log4j vulnerability in December 2021.
|
|
110
|
+
|
|
111
|
+
**Architecture**: Java process embedding Flume components (Source -> Channel -> Sink).
|
|
112
|
+
Uses file-based or memory-based channels for buffering. Each APP_ID deployment requires
|
|
113
|
+
at least 10GB of disk space for channel buffers.
|
|
114
|
+
|
|
115
|
+
**Data Sources**:
|
|
116
|
+
- **File**: Java-standard regex or Glob matching (configurable via `TAIL_MATCHER`).
|
|
117
|
+
Supports `DATE{YYYYMMDD}` templates for date-based directory structures (regex mode
|
|
118
|
+
only).
|
|
119
|
+
- **Kafka**: Consumer group based, supports SASL authentication (since 1.5.15.5).
|
|
120
|
+
Requires Kafka broker version 0.10.1.0+.
|
|
121
|
+
|
|
122
|
+
**Notable Features**:
|
|
123
|
+
- File format debugging via `data_debug` command (validates data format against TA spec)
|
|
124
|
+
- `doctor` command for automated troubleshooting
|
|
125
|
+
- `status` command for real-time speed, memory, and CPU monitoring
|
|
126
|
+
- Custom parser via Java `CustomInterceptor` interface (Maven/Gradle dependency)
|
|
127
|
+
- Multi-threaded transmission with configurable `NUMTHREAD`
|
|
128
|
+
|
|
129
|
+
**Limitations**:
|
|
130
|
+
- Higher memory footprint due to JVM overhead
|
|
131
|
+
- No native macOS support
|
|
132
|
+
- No K8s/Helm deployment option
|
|
133
|
+
- No multi-platform binary (separate Windows build at v1.3.0 with reduced features)
|
|
134
|
+
- End of active feature development
|
|
135
|
+
|
|
136
|
+
**When to choose LogBus v1**:
|
|
137
|
+
- You have an existing LogBus v1 deployment to maintain
|
|
138
|
+
- Your environment has special JDK constraints that make Go binaries impractical
|
|
139
|
+
- You need regex-based file matching (not available in LogBus2 Glob patterns)
|
|
140
|
+
- You need the `data_debug` bulk format validation command
|
|
141
|
+
|
|
142
|
+
---
|
|
143
|
+
|
|
144
|
+
### DataX Writer (ta-datax-writer)
|
|
145
|
+
|
|
146
|
+
The DataX Writer plugin is designed exclusively for **one-off bulk historical data
|
|
147
|
+
migration** from relational databases, data warehouses, HDFS, or other structured
|
|
148
|
+
sources into TA.
|
|
149
|
+
|
|
150
|
+
**Architecture**: A writer plugin for Alibaba's DataX framework. DataX manages the
|
|
151
|
+
reader (source) and writer (TA) in a job with configurable channel parallelism. Each
|
|
152
|
+
channel independently reads from the source and writes to TA via HTTP (receiver
|
|
153
|
+
endpoint).
|
|
154
|
+
|
|
155
|
+
**Column Mapping**: The writer maps source columns to TA data model fields via a
|
|
156
|
+
`column` array:
|
|
157
|
+
```json
|
|
158
|
+
{
|
|
159
|
+
"index": "0",
|
|
160
|
+
"colTargetName": "#distinct_id",
|
|
161
|
+
"type": "string"
|
|
162
|
+
}
|
|
163
|
+
```
|
|
164
|
+
|
|
165
|
+
Each column specification requires at least one of `index` (source column ordinal) or
|
|
166
|
+
`value` (constant). Type conversion follows this mapping:
|
|
167
|
+
|
|
168
|
+
| DataX Internal Type | TA Data Type |
|
|
169
|
+
|---|---|
|
|
170
|
+
| Int | Number |
|
|
171
|
+
| Long | Number |
|
|
172
|
+
| Double | Number |
|
|
173
|
+
| String | String |
|
|
174
|
+
| Boolean | Boolean |
|
|
175
|
+
| Date | Date (with configurable `dateFormat`) |
|
|
176
|
+
|
|
177
|
+
**Supported Data Types**: `track` (event data) and `user_set` (user property data).
|
|
178
|
+
|
|
179
|
+
**Performance**: Throughput is determined by DataX's channel count (`speed.channel`) and
|
|
180
|
+
the writer's thread count (`thread`, default 3). These operate independently -- multiple
|
|
181
|
+
writer threads within each channel.
|
|
182
|
+
|
|
183
|
+
**Compression**: Supports gzip, lzo, lz4, snappy at the sink level.
|
|
184
|
+
|
|
185
|
+
**Limitations**:
|
|
186
|
+
- Only supports writing to TA clusters (single-purpose writer)
|
|
187
|
+
- Requires separate DataX installation and configuration
|
|
188
|
+
- No real-time/streaming capability -- batch job only
|
|
189
|
+
- One APP_ID per job JSON configuration
|
|
190
|
+
- No built-in offset tracking, retry, or crash recovery beyond DataX's job-level
|
|
191
|
+
semantics
|
|
192
|
+
|
|
193
|
+
**When to choose DataX Writer**:
|
|
194
|
+
- You are migrating historical data from a database or data warehouse into TA
|
|
195
|
+
- The source is one of DataX's many supported readers (MySQL, Oracle, HDFS, Hive, ODPS,
|
|
196
|
+
MongoDB, etc.)
|
|
197
|
+
- You need column-level type mapping and transformation
|
|
198
|
+
- The job is one-off or scheduled batch, not real-time streaming
|
|
199
|
+
|
|
200
|
+
---
|
|
201
|
+
|
|
202
|
+
### Filebeat + Logstash
|
|
203
|
+
|
|
204
|
+
This combination uses open-source ELK stack components for real-time log tailing. It is
|
|
205
|
+
best suited for teams **already operating an ELK stack** who want to add TA as an
|
|
206
|
+
additional output destination.
|
|
207
|
+
|
|
208
|
+
**Architecture**:
|
|
209
|
+
```
|
|
210
|
+
Log files -> Filebeat (tail) -> Logstash (filter/transform) -> TA Receiver
|
|
211
|
+
```
|
|
212
|
+
|
|
213
|
+
- **Filebeat**: Lightweight Go agent (~10MB memory) installed on each log-producing
|
|
214
|
+
server. Monitors files via Glob patterns and ships lines to Logstash. Supports
|
|
215
|
+
multiple input configurations with tag-based routing.
|
|
216
|
+
- **Logstash**: Java-based data processing pipeline. Receives events from Filebeat via
|
|
217
|
+
the Beats input plugin on port 5044. Transforms data using Ruby filter scripts.
|
|
218
|
+
Outputs to TA via the `logstash-output-thinkingdata` plugin.
|
|
219
|
+
|
|
220
|
+
**Key Configuration Points**:
|
|
221
|
+
- `queue.type: persisted` is strongly recommended to prevent data loss on unexpected
|
|
222
|
+
shutdown (persistent queues on disk)
|
|
223
|
+
- `queue.drain: true` ensures all buffered data is flushed before graceful shutdown
|
|
224
|
+
- `pipeline.workers: 1` is required for `user_set` data to preserve event ordering;
|
|
225
|
+
`track` events can use multiple workers
|
|
226
|
+
- `loadbalance: true` in Filebeat is only safe for `track` events; must be `false` for
|
|
227
|
+
`user_set`
|
|
228
|
+
|
|
229
|
+
**Custom Parsing (Ruby Filters)**:
|
|
230
|
+
Logstash requires Ruby scripts to transform arbitrary log formats into TA data format.
|
|
231
|
+
Example for a structured log:
|
|
232
|
+
```ruby
|
|
233
|
+
def filter(event)
|
|
234
|
+
_message = event.get('message')
|
|
235
|
+
time, account_id, ip, event_name, msg, intdata = _message.split(/,/)
|
|
236
|
+
properties = { 'msg' => msg, 'int_data' => intdata.to_i }
|
|
237
|
+
data = {
|
|
238
|
+
'#time' => time,
|
|
239
|
+
'#account_id' => account_id,
|
|
240
|
+
'#event_name' => event_name,
|
|
241
|
+
'#ip' => ip,
|
|
242
|
+
'#type' => 'track',
|
|
243
|
+
'properties' => properties
|
|
244
|
+
}
|
|
245
|
+
event.set('message', data.to_json)
|
|
246
|
+
return [event]
|
|
247
|
+
rescue
|
|
248
|
+
return [] # drop bad records
|
|
249
|
+
end
|
|
250
|
+
```
|
|
251
|
+
|
|
252
|
+
**Limitations**:
|
|
253
|
+
- **Low throughput**: The official documentation explicitly warns that Logstash has low
|
|
254
|
+
throughput and recommends DataX or LogBus for bulk historical data
|
|
255
|
+
- Requires JDK environment on Logstash nodes
|
|
256
|
+
- Two daemons to maintain (Filebeat + Logstash)
|
|
257
|
+
- No built-in TA-specific monitoring or debug commands
|
|
258
|
+
- No multi APP_ID support per Logstash pipeline (one output plugin instance = one APP_ID)
|
|
259
|
+
|
|
260
|
+
**When to choose Filebeat + Logstash**:
|
|
261
|
+
- Your organization already runs and maintains an ELK stack
|
|
262
|
+
- You want to reuse existing Filebeat agents already deployed on your servers
|
|
263
|
+
- Your throughput requirements are modest
|
|
264
|
+
- You need flexible, script-based log transformation (Ruby) for non-standard formats
|
|
265
|
+
- You want to avoid deploying a separate ingestion tool
|
|
266
|
+
|
|
267
|
+
---
|
|
268
|
+
|
|
269
|
+
## Selection Decision Matrix
|
|
270
|
+
|
|
271
|
+
| Requirement | Recommended Tool |
|
|
272
|
+
|---|---|
|
|
273
|
+
| Real-time server log tailing (new deployment) | **LogBus2** |
|
|
274
|
+
| Real-time server log tailing (existing LogBus v1) | **LogBus2** (migrate) or maintain **LogBus v1** |
|
|
275
|
+
| Bulk historical data from database/warehouse | **DataX Writer** |
|
|
276
|
+
| Kafka-based streaming pipeline | **LogBus2** |
|
|
277
|
+
| K8s-native deployment | **LogBus2** (Helm) |
|
|
278
|
+
| Existing ELK stack, add TA as output | **Filebeat + Logstash** |
|
|
279
|
+
| Windows server environment | **LogBus2** (preferred) or **LogBus Windows** (legacy) |
|
|
280
|
+
| Prometheus/Grafana monitoring required | **LogBus2** |
|
|
281
|
+
| Low memory budget | **LogBus2** (Go binary, ~1/5 of LogBus v1) |
|
|
282
|
+
| Regex-based file matching needed | **LogBus v1** |
|
|
283
|
+
| Aliyun SLS as data source | **LogBus2** |
|
|
284
|
+
|
|
285
|
+
---
|
|
286
|
+
|
|
287
|
+
## Performance Hierarchy (high to low throughput)
|
|
288
|
+
|
|
289
|
+
1. **LogBus2** -- 5x faster than LogBus v1; Go runtime with SIMD acceleration
|
|
290
|
+
2. **DataX Writer** -- High throughput via parallel channels; tunable
|
|
291
|
+
3. **LogBus v1** -- Moderate; JVM-bound; tunable thread count
|
|
292
|
+
4. **Filebeat + Logstash** -- Low throughput; explicitly noted as unsuitable for bulk
|
|
293
|
+
|
|
294
|
+
---
|
|
295
|
+
|
|
296
|
+
## Deployment Complexity (simplest to most complex)
|
|
297
|
+
|
|
298
|
+
1. **LogBus2** -- Single binary; one JSON config file; Docker/K8s/Helm available
|
|
299
|
+
2. **LogBus v1** -- Java runtime required; properties-file config; Docker available
|
|
300
|
+
3. **DataX Writer** -- Requires DataX framework installation + plugin deployment + job
|
|
301
|
+
JSON authoring
|
|
302
|
+
4. **Filebeat + Logstash** -- Two daemons; Java + Go runtimes; Logstash plugin
|
|
303
|
+
installation; Ruby filter scripting
|
|
304
|
+
|
|
305
|
+
---
|
|
306
|
+
|
|
307
|
+
## Migration Path: LogBus v1 to LogBus2
|
|
308
|
+
|
|
309
|
+
For teams currently on LogBus v1, a migration to LogBus2 is recommended given that v1
|
|
310
|
+
receives only security patches and LogBus2 delivers a 5x throughput improvement at 1/5
|
|
311
|
+
the memory cost. Key migration considerations:
|
|
312
|
+
|
|
313
|
+
- **Config format changes**: LogBus v1 uses Java-style `.conf` properties files; LogBus2
|
|
314
|
+
uses JSON (`daemon.json`). Use the `configConvert` tool shipped in the LogBus2
|
|
315
|
+
`tools/` directory to assist.
|
|
316
|
+
- **File matching**: LogBus v1 supports both regex and Glob; LogBus2 supports Glob only.
|
|
317
|
+
Review `TAIL_FILE` patterns for regex constructs that need rewriting.
|
|
318
|
+
- **Custom parsers**: LogBus v1 uses Java `CustomInterceptor` (JAR-based); LogBus2 uses
|
|
319
|
+
gRPC-based plugins. Parser logic must be reimplemented.
|
|
320
|
+
- **Monitoring**: LogBus v1 uses the `status` and `doctor` commands; LogBus2 uses
|
|
321
|
+
Prometheus metrics and Grafana dashboards.
|
|
322
|
+
- **Kafka offset**: Both consume from `earliest` by default and support
|
|
323
|
+
`auto.offset.reset`. Coordinate consumer group names to avoid re-consuming existing
|
|
324
|
+
data.
|