11import * as pulumi from '@pulumi/pulumi' ;
22import { serviceLocalHost } from '../utils/local-endpoint' ;
33import { Observability as ObservabilityInstance } from '../utils/observability' ;
4+ import { Environment } from './environment' ;
45import { deployGrafana } from './grafana' ;
56
67// Change this to control OTEL tracing for usage service
78const enableTracingForUsageService = true ;
89
9- export function deployObservability ( config : {
10- envName : string ;
11- /**
12- * Suffix for the table names (production, staging, dev).
13- * It can't be envName as "prod" is not a valid table suffix.
14- */
15- tableSuffix : string ;
16- } ) {
10+ export function deployObservability ( config : { environment : Environment } ) {
1711 const observabilityConfig = new pulumi . Config ( 'observability' ) ;
1812
1913 if ( ! observabilityConfig . getBoolean ( 'enabled' ) ) {
@@ -25,7 +19,7 @@ export function deployObservability(config: {
2519 const useLocal = observabilityConfig . getBoolean ( 'local' ) ;
2620
2721 const observability = new ObservabilityInstance (
28- config . envName ,
22+ config . environment ,
2923 useLocal
3024 ? 'local'
3125 : {
@@ -53,12 +47,15 @@ export function deployObservability(config: {
5347 throw new Error ( 'OTLP collector service is required for observability' ) ;
5448 }
5549
50+ const tableSuffix =
51+ config . environment . envName === 'prod' ? 'production' : config . environment . envName ;
52+
5653 return {
5754 tracingEndpoint : serviceLocalHost ( observabilityInstance . otlpCollectorService ) . apply (
5855 host => `http://${ host } :4318/v1/traces` ,
5956 ) ,
6057 observability : observabilityInstance ,
61- grafana : useLocal ? undefined : deployGrafana ( config . envName , config . tableSuffix ) ,
58+ grafana : useLocal ? undefined : deployGrafana ( config . environment . envName , tableSuffix ) ,
6259 enabled : true ,
6360 enabledForUsageService : enableTracingForUsageService ,
6461 } ;
0 commit comments