当前位置: 首页 > 知识库问答 >
问题:

如何在Microsoft AppInsights中的Angular TypeScript中添加自定义角色

薛宏壮
2023-03-14

我有一个角度的项目,我想包括与遥测(自定义角色)的AppInsight。这个项目是用Angular和TypeScript编写的,我遵循了本教程来集成Angular项目中的用词,它似乎工作得很好。我按照这个链接添加了自定义遥测(带有角色),但它是用Java/JavaScript/node.js编写的

当我尝试使用JS代码时

this.appInsights.queue.push(() => {
      this.appInsights.addTelemetryInitializer((envelope) => {
        envelope.tags["ai.cloud.role"] = "your role name";
        envelope.tags["ai.cloud.roleInstance"] = "your role instance";
      });
    });

我有一个错误:

TS2339: Property 'queue' does not exist on type 'Initialization'. 
this.appInsights.addTelemetryInitializer(envelope => {
  envelope.tags['ai.cloud.role'] = 'your cloud role name';
  envelope.baseData.properties['item'] = 'some property';
});
import {Injectable} from '@angular/core';
import {environment} from '../../../../environments/environment';
import {ApplicationInsights} from '@microsoft/applicationinsights-web';

@Injectable()
export class MonitoringService {
  appInsights: ApplicationInsights;

  constructor() {
    this.appInsights = new ApplicationInsights({
      config: {
        instrumentationKey: environment.appInsights.instrumentationKey,
        enableAutoRouteTracking: true // option to log all route changes
      }
    });
    this.appInsights.queue.push(() => {
      this.appInsights.addTelemetryInitializer((envelope) => {
        envelope.tags["ai.cloud.role"] = "your role name";
        envelope.tags["ai.cloud.roleInstance"] = "your role instance";
      });
    });
    this.appInsights.loadAppInsights();
  }

  logPageView(name?: string, url?: string) { // option to call manually
    this.appInsights.trackPageView({
      name: name,
      uri: url
    });
  }

  logEvent(name: string, properties?: { [key: string]: any }) {
    this.appInsights.trackEvent({name: name}, properties);
  }

  logMetric(name: string, average: number, properties?: { [key: string]: any }) {
    this.appInsights.trackMetric({name: name, average: average}, properties);
  }

  logException(exception: Error, severityLevel?: number) {
    this.appInsights.trackException({exception: exception, severityLevel: severityLevel});
  }

  logTrace(message: string, properties?: { [key: string]: any }) {
    this.appInsights.trackTrace({message: message}, properties);
  }
}

当我打开用词时,有一个角色,但它没有正确设置

共有1个答案

江飞章
2023-03-14

我没有完全相同的问题,但我需要在loadAppInsigthts之后运行遥测初始化器,如下所示:

      this.appInsights.loadAppInsights();

      const telemetryInitializer = (envelope) => {
        envelope.tags['ai.cloud.role'] = 'name-of-your-app';
      };
      this.appInsights.addTelemetryInitializer(telemetryInitializer);

(来源:https://github.com/microsoft/applicationinsights-js#example-setting-cloud-role-name)

那有什么区别吗?

 类似资料:
  • 是否有一个时间格式来指定这样的日期序列到轴在D3和v4?

  • 我想在向url发送请求时添加假用户代理。但它并没有添加假useragent,而是使用默认的useragent。

  • 问题内容: 我正在使用Twitter Bootstrap添加图标,没有问题。他们有很多选择。 http://twitter.github.com/bootstrap/base- css.html#icons 但是,我找不到菜单项之一的适当图标。关于“汽车”。我想要的是我想添加我的自定义图标。我怎样才能做到这一点? 问题答案: 您可以通过在自己的类(如)中定义图标来创建自己的图标: 当然要记住使用前

  • 问题内容: 背后有不同的原因,但是我想知道如何简单地向JSX中的元素添加自定义属性? 问题答案: 编辑:更新以反映React 16 React 16本机支持自定义属性。这意味着向元素添加自定义属性现在就像将其添加至函数一样简单,如下所示: 先前的答案(第15和更早版本) 当前不支持自定义属性。有关更多信息,请参见此未解决的问题: 解决方法是,您可以在中执行以下操作:

  • 在我的一个Rest API调用中,我需要添加标题“Authorization:partner_id:timestamp signature” 如果公司名称是静态字符串,则可以对其进行硬编码,其中作为合作伙伴的id是查询参数的一部分,用户输入它,签名计算为sha256(机密,密码)。消化编码('base64') 我现在看到只有api_密钥,而且在swagger ui中允许基本授权,我如何以及在哪里实

  • 我正在尝试ng2-file-upload,问题是我不能设置自定义头。到目前为止我已经做到了 在upload-documents.component中