1
1
import * as pulumi from '@pulumi/pulumi' ;
2
2
import { serviceLocalHost } from '../utils/local-endpoint' ;
3
3
import { Observability as ObservabilityInstance } from '../utils/observability' ;
4
+ import { Environment } from './environment' ;
4
5
import { deployGrafana } from './grafana' ;
5
6
6
7
// Change this to control OTEL tracing for usage service
7
8
const enableTracingForUsageService = true ;
8
9
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 } ) {
17
11
const observabilityConfig = new pulumi . Config ( 'observability' ) ;
18
12
19
13
if ( ! observabilityConfig . getBoolean ( 'enabled' ) ) {
@@ -25,7 +19,7 @@ export function deployObservability(config: {
25
19
const useLocal = observabilityConfig . getBoolean ( 'local' ) ;
26
20
27
21
const observability = new ObservabilityInstance (
28
- config . envName ,
22
+ config . environment ,
29
23
useLocal
30
24
? 'local'
31
25
: {
@@ -53,12 +47,15 @@ export function deployObservability(config: {
53
47
throw new Error ( 'OTLP collector service is required for observability' ) ;
54
48
}
55
49
50
+ const tableSuffix =
51
+ config . environment . envName === 'prod' ? 'production' : config . environment . envName ;
52
+
56
53
return {
57
54
tracingEndpoint : serviceLocalHost ( observabilityInstance . otlpCollectorService ) . apply (
58
55
host => `http://${ host } :4318/v1/traces` ,
59
56
) ,
60
57
observability : observabilityInstance ,
61
- grafana : useLocal ? undefined : deployGrafana ( config . envName , config . tableSuffix ) ,
58
+ grafana : useLocal ? undefined : deployGrafana ( config . environment . envName , tableSuffix ) ,
62
59
enabled : true ,
63
60
enabledForUsageService : enableTracingForUsageService ,
64
61
} ;
0 commit comments