or run

npx @tessl/cli init
Log in

Version

Tile

Overview

Evals

Files

docs

configuration.mdcontext-correlation.mdindex.mdinitialization.mdlegacy-api.mdtelemetry-client.mdtelemetry-types.md
tile.json

index.mddocs/

Application Insights

Microsoft Application Insights module for comprehensive telemetry and application performance monitoring in Node.js applications. Built on OpenTelemetry standards, it enables automatic collection of distributed traces, metrics, and logs from Node.js services and their external dependencies including databases, caches, and web services.

Package Information

  • Package Name: applicationinsights
  • Package Type: npm
  • Language: TypeScript
  • Installation: npm install applicationinsights

Core Imports

For modern OpenTelemetry-based usage:

import { useAzureMonitor, shutdownAzureMonitor, TelemetryClient, KnownSeverityLevel } from "applicationinsights";

For legacy Application Insights 2.x compatibility:

const appInsights = require("applicationinsights");

For ES modules with compatibility API:

import * as appInsights from "applicationinsights";

Basic Usage

Modern OpenTelemetry Initialization

import { useAzureMonitor } from "applicationinsights";

// Initialize with connection string from environment variable
useAzureMonitor({
  connectionString: process.env.APPLICATIONINSIGHTS_CONNECTION_STRING
});

Legacy Compatibility Initialization

const appInsights = require("applicationinsights");

// Initialize and start automatic collection
appInsights
  .setup("YOUR_CONNECTION_STRING")
  .setAutoCollectRequests(true)
  .setAutoCollectPerformance(true)
  .setAutoCollectExceptions(true)
  .setAutoCollectDependencies(true)
  .start();

Architecture

Application Insights for Node.js is built around several key components:

  • OpenTelemetry Integration: Modern telemetry collection based on OpenTelemetry standards
  • Legacy Shim Layer: Backward compatibility with Application Insights 2.x API
  • Automatic Instrumentation: Built-in collection of requests, dependencies, exceptions, and performance metrics
  • Manual Tracking: TelemetryClient for custom telemetry submission
  • Configuration System: Flexible configuration for auto-collection behaviors
  • Correlation Context: Request-scoped context for distributed tracing

Capabilities

Core Initialization

Primary initialization functions for setting up Application Insights monitoring with OpenTelemetry integration.

function useAzureMonitor(options?: AzureMonitorOpenTelemetryOptions): void;
function shutdownAzureMonitor(): Promise<void>;
function flushAzureMonitor(): Promise<void>;

Core Initialization

Manual Telemetry Tracking

TelemetryClient for manually tracking custom telemetry including traces, events, exceptions, metrics, requests, and dependencies.

class TelemetryClient {
  constructor(input?: string);
  trackTrace(telemetry: TraceTelemetry): void;
  trackEvent(telemetry: EventTelemetry): void;
  trackException(telemetry: ExceptionTelemetry): void;
  trackMetric(telemetry: MetricTelemetry): void;
  trackRequest(telemetry: RequestTelemetry): void;
  trackDependency(telemetry: DependencyTelemetry): void;
  trackAvailability(telemetry: AvailabilityTelemetry): void;
  trackPageView(telemetry: PageViewTelemetry): void;
  flush(): Promise<void>;
  shutdown(): Promise<void>;
}

Manual Telemetry Tracking

Configuration Management

Configuration class and methods for controlling automatic telemetry collection behaviors.

class Configuration {
  static start(): Configuration;
  static setAutoCollectRequests(value: boolean): Configuration;
  static setAutoCollectDependencies(value: boolean): Configuration;
  static setAutoCollectExceptions(value: boolean): Configuration;
  static setAutoCollectPerformance(value: boolean, collectExtendedMetrics?: any): Configuration;
  static setAutoCollectConsole(value: boolean, collectConsoleLog?: boolean): Configuration;
  static setUseDiskRetryCaching(value: boolean, resendInterval?: number, maxBytesOnDisk?: number): Configuration;
}

Configuration Management

Legacy Compatibility API

Backward compatibility functions and setup methods for migrating from Application Insights 2.x.

function setup(setupString?: string): Configuration;
function start(): Configuration;
function dispose(): void;
let defaultClient: TelemetryClient;

Legacy Compatibility API

Context and Correlation

Functions for managing request context and distributed tracing correlation across components.

function getCorrelationContext(): ICorrelationContext;
function startOperation(context: any, request?: any): ICorrelationContext | null;
function wrapWithCorrelationContext<T>(fn: T, context?: ICorrelationContext): T;

Context and Correlation

Telemetry Types

Comprehensive type definitions for all telemetry data structures including events, traces, exceptions, metrics, requests, dependencies, and availability tests.

interface Telemetry {
  time?: Date;
  properties?: { [key: string]: any };
}

interface EventTelemetry extends Telemetry {
  name: string;
  measurements?: { [key: string]: number };
}

interface TraceTelemetry extends Telemetry {
  message: string;
  severity?: SeverityLevel;
  measurements?: { [propertyName: string]: number };
}

Telemetry Types