首页 > 解决方案 > 适用于 React 项目的 Application Insights 开发人员模式

问题描述

有没有办法在 Application Insights 中为反应项目启用开发人员模式。查看这些文档之前提出的问题,我已将配置设置为如下所示

if(process.env.NODE_ENV === 'development')
{
    config = {
        instrumentationKey: process.env.REACT_APP_AI_INSTRUMENTATION_KEY,
        extensions: [reactPlugin, clickPlugin],
        extensionConfig: {
            [clickPlugin.identifier]: clickPluginConfig,
            reactPlugin: {history: browserHistory}
        },
        // send telemetry immediately
        maxBatchInterval: 0,
        maxBatchSizeInBytes: 0,
        loggingLevelConsole: 2 // log internal app insights errors to console
    }
}

我希望在本地运行我的项目时,遥测数据将更快地发送到门户,但在我执行操作和它出现在 Application Insights 门户中之间仍有至少 10 分钟的延迟。

开发者模式文档为 JavaScript 实现指定了 Node.js 运行时。老实说,我不确定 Create-React-App 应用程序使用什么运行时,尽管我相信它是 Node.js。

标签: javascriptreactjsazure-application-insightsapplicationinsights-react-js

解决方案


是的!Node.js 提供了一个(服务器端)运行时环境来从浏览器外部执行 JavaScript 代码。NPM 是 Node 包管理器,用于管理和共享 React 或 Angular 的包。


DeveloperMode仅表示 SDK 通道不会在内存中存储任何遥测项。常规行为是将遥测数据缓冲在内存中,每 30 秒或当缓冲区有 500 个项目时,它们被推送到后端。开发者模式只是让每个项目在没有缓冲的情况下被发送。

遥测数据通常可在 3-10 分钟内在 Azure 门户中查看(基于后端/索引/等延迟)。

(开发者模式背后的意图是直接在本地显示数据。即Visual Studio本身在调试时显示遥测。这个开发者不需要显式激活。添加调试器会自动激活开发者模式)


如果您的应用程序包含聚合数据大约需要 5-10 分钟才能出现。此外,当我们遇到处理延迟时,我们会在门户的 Application Insights 的“概述”页面上显示横幅。 hkdeploy1 也喜欢, hkaggregateddatanodedeploy2

如果应用程序延迟超过 10 分钟,则可能是处理管道有问题,或者由于配置中的一些故障,我们这边的检测问题。

更新:

要获得有关 MaxBatchSize 和延迟的更多控制,您应该初始化一个新的TelemetryConfiguration对象并使用它来创建客户端:

import "time"
import "github.com/microsoft/ApplicationInsights-Go/appinsights"

func main() {
    telemetryConfig := appinsights.NewTelemetryConfiguration("<instrumentation key>")
    
// Configure how many items can be sent in one call to the data collector:
telemetryConfig.MaxBatchSize = 8192

// Configure the maximum delay before sending queued telemetry:
telemetryConfig.MaxBatchInterval = 2 * time.Second

client := appinsights.NewTelemetryClientFromConfig(telemetryConfig)
}

有关更多信息,请参阅此处


推荐阅读