Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 1 addition & 2 deletions templates/todo/api/csharp-cosmos-sql/Program.cs
Original file line number Diff line number Diff line change
Expand Up @@ -15,8 +15,7 @@
}
}));
builder.Services.AddControllers();
var options = new ApplicationInsightsServiceOptions { ConnectionString = builder.Configuration["APPLICATIONINSIGHTS_CONNECTION_STRING"] };
builder.Services.AddApplicationInsightsTelemetry(options);
builder.Services.AddApplicationInsightsTelemetry(builder.Configuration);
Comment thread
lmolkova marked this conversation as resolved.

var app = builder.Build();

Expand Down
3 changes: 1 addition & 2 deletions templates/todo/api/csharp-sql/Program.cs
Original file line number Diff line number Diff line change
Expand Up @@ -11,8 +11,7 @@
});

builder.Services.AddControllers();
var options = new ApplicationInsightsServiceOptions { ConnectionString = builder.Configuration["APPLICATIONINSIGHTS_CONNECTION_STRING"] };
builder.Services.AddApplicationInsightsTelemetry(options);
builder.Services.AddApplicationInsightsTelemetry(builder.Configuration);

var app = builder.Build();

Expand Down
4 changes: 1 addition & 3 deletions templates/todo/api/csharp/Program.cs
Original file line number Diff line number Diff line change
Expand Up @@ -9,9 +9,7 @@
builder.Services.AddSingleton<ListsRepository>();
builder.Services.AddSingleton(_ => new MongoClient(builder.Configuration[builder.Configuration["AZURE_COSMOS_CONNECTION_STRING_KEY"]]));
builder.Services.AddControllers();

var options = new ApplicationInsightsServiceOptions { ConnectionString = builder.Configuration["APPLICATIONINSIGHTS_CONNECTION_STRING"] };
builder.Services.AddApplicationInsightsTelemetry(options);
builder.Services.AddApplicationInsightsTelemetry(builder.Configuration);

var app = builder.Build();

Expand Down
52 changes: 28 additions & 24 deletions templates/todo/api/js/src/config/observability.ts
Original file line number Diff line number Diff line change
Expand Up @@ -23,36 +23,40 @@ export const logger = winston.createLogger({
});

export const observability = (config: ObservabilityConfig) => {
applicationInsights
.setup(config.connectionString)
.setAutoDependencyCorrelation(true)
.setAutoCollectRequests(true)
.setAutoCollectPerformance(true, true)
.setAutoCollectExceptions(true)
.setAutoCollectDependencies(true)
.setAutoCollectConsole(true)
.setUseDiskRetryCaching(true)
.setSendLiveMetrics(true)
.setDistributedTracingMode(applicationInsights.DistributedTracingModes.AI_AND_W3C);

applicationInsights.defaultClient.context.tags[applicationInsights.defaultClient.context.keys.cloudRole] = config.roleName;
applicationInsights.defaultClient.setAutoPopulateAzureProperties(true);
applicationInsights.start();

// Append App Insights to the winston logger
logger.defaultMeta = {
app: config.roleName
};

const applicationInsightsTransport = new ApplicationInsightsTransport({
client: applicationInsights.defaultClient,
level: LogLevel.Information,
handleExceptions: true, // Handles node unhandled exceptions
handleRejections: true, // Handles node promise rejections
});
try {
applicationInsights
.setup(config.connectionString)
.setAutoDependencyCorrelation(true)
.setAutoCollectRequests(true)
.setAutoCollectPerformance(true, true)
.setAutoCollectExceptions(true)
.setAutoCollectDependencies(true)
.setAutoCollectConsole(true)
.setUseDiskRetryCaching(true)
.setSendLiveMetrics(true)
.setDistributedTracingMode(applicationInsights.DistributedTracingModes.AI_AND_W3C);

applicationInsights.defaultClient.context.tags[applicationInsights.defaultClient.context.keys.cloudRole] = config.roleName;
applicationInsights.defaultClient.setAutoPopulateAzureProperties(true);
applicationInsights.start();

const applicationInsightsTransport = new ApplicationInsightsTransport({
client: applicationInsights.defaultClient,
level: LogLevel.Information,
handleExceptions: true, // Handles node unhandled exceptions
handleRejections: true, // Handles node promise rejections
});

logger.add(applicationInsightsTransport);
logger.info("Added ApplicationInsights logger transport");
logger.add(applicationInsightsTransport);
logger.info("Added ApplicationInsights logger transport");
} catch (err) {
logger.error(`ApplicationInsights setup failed, ensure environment variable 'APPLICATIONINSIGHTS_CONNECTION_STRING' has been set. Error: ${err}`);
}
};

if (process.env.NODE_ENV !== "production") {
Expand Down
24 changes: 14 additions & 10 deletions templates/todo/web/react-fluent/src/services/telemetryService.ts
Original file line number Diff line number Diff line change
Expand Up @@ -27,16 +27,20 @@ export const getApplicationInsights = (): ApplicationInsights => {
}

applicationInsights = new ApplicationInsights(ApplicationInsightsConfig);
applicationInsights.loadAppInsights();

applicationInsights.addTelemetryInitializer((telemetry: ITelemetryItem) => {
if (!telemetry) {
return;
}
if (telemetry.tags) {
telemetry.tags['ai.cloud.role'] = "webui";
}
});
try {
applicationInsights.loadAppInsights();
applicationInsights.addTelemetryInitializer((telemetry: ITelemetryItem) => {
if (!telemetry) {
return;
}
if (telemetry.tags) {
telemetry.tags['ai.cloud.role'] = "webui";
}
});
} catch(err) {
// TODO - proper logging for web
console.error("ApplicationInsights setup failed, ensure environment variable 'REACT_APP_APPLICATIONINSIGHTS_CONNECTION_STRING' has been set.", err);
}

return applicationInsights;
}
Expand Down