File size: 3,929 Bytes
1f10f31
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
address: 127.0.0.1:8888

environment: local

termination:
  checkInterval: 7s
  gracefulShutdownTimeout: 43s
  propagationTimeout: 18s

telemetry:
  address: 127.0.0.1:10000

  trace:
    sampler: always
    exporters:
      otlp:
        enabled: true
        address: 127.0.0.1:4317

  metrics:
    exporters:
      prometheus:
        enabled: true
      otlp:
        enabled: true
        address: 127.0.0.1:4317

  log:
    format: json
    level: info

namespace:
  default: default

ingest:
  kafka:
    broker: 127.0.0.1:9092
    securityProtocol: SASL_SSL
    saslMechanisms: PLAIN
    saslUsername: user
    saslPassword: pass
    partitions: 1
    statsInterval: 5s
    brokerAddressFamily: any
    socketKeepAliveEnabled: true
    topicMetadataRefreshInterval: 1m
    debugContexts:
      - broker
      - topic
      - consumer
    topicProvisioner:
      cacheSize: 200
      cacheTTL: 15m
      protectedTopics:
        - "protected-topic-1"
        - "protected-topic-2"

aggregation:
  clickhouse:
    address: 127.0.0.1:9440
    tls: true
    username: default
    password: default
    database: openmeter

    retry:
      enabled: true

sink:
  groupId: openmeter-sink-worker
  minCommitCount: 500
  maxCommitWait: 30s
  namespaceRefetch: 15s
  namespaceRefetchTimeout: 9s
  namespaceTopicRegexp: "^om_test_([A-Za-z0-9]+(?:_[A-Za-z0-9]+)*)_events$"
  dedupe:
    enabled: true
    driver: redis
    config:
      expiration: 768h # 32d
      database: 0
      address: 127.0.0.1:6379
      username: default
      password: pass
      tls:
        enabled: true
  kafka:
    brokers: 127.0.0.1:9092
    securityProtocol: SASL_SSL
    saslMechanisms: PLAIN
    saslUsername: user
    saslPassword: pass
    statsInterval: 5s
    brokerAddressFamily: any
    socketKeepAliveEnabled: true
    topicMetadataRefreshInterval: 1m
    debugContexts:
      - broker
      - topic
      - consumer
    clientID: kafka-client-1
    consumerGroupID: consumer-group
    consumerGroupInstanceID: consumer-group-1
    sessionTimeout: 5m
    heartbeatInterval: 3s
    enableAutoCommit: true
    enableAutoOffsetStore: false
    autoOffsetReset: "error"
    partitionAssignmentStrategy:
      - "range"
      - "roundrobin"

customer:
  enableSubjectHook: true
  ignoreErrors: true

dedupe:
  enabled: true
  driver: redis
  config:
    expiration: 768h # 32d
    database: 0
    address: 127.0.0.1:6379
    username: default
    password: pass
    tls:
      enabled: true

balanceWorker:
  stateStorage:
    driver: redis
    config:
      expiration: 23h
      address: 127.0.0.1:6379

meters:
  - slug: m1
    eventType: api-calls
    valueProperty: $.duration_ms
    aggregation: SUM
    groupBy:
      method: $.method
      path: $.path

reservedEventTypes:
  - ^reserved\..*$
  - ^_\..*$
  - ^openmeter\..*$

notification:
  enabled: true
  reconcileInterval: 1m
  sendingTimeout: 1h
  pendingTimeout: 2h
  reconcilerWorkers: 10
  lock:
    owner: lock-owner
    leaseTime: 7m
    heartbeatInterval: 29s

svix:
  apiKey: test-svix-token
  serverURL: http://127.0.0.1:8071
  debug: true

productCatalog:
  subscription:
    multiSubscriptionNamespaces:
      - "multi-subscription"

taxcode:
  seeds:
    - key: default
      name: Provider default
      defaultInvoicing: true
    - key: nontaxable
      name: Nontaxable
      defaultCreditGrant: true
      appMappings:
        - appType: stripe
          taxCode: txcd_00000000
featureGate:
  enabled: true
  flags:
    om_ff_credits_enabled: "credits"

server:
  readHeaderTimeout: 10s
  readTimeout: 30s
  writeTimeout: 30s
  idleTimeout: 60s
  responseValidation:
    mode: "unstable" # "off" | "unstable" | "all"
  clientIPMiddleware:
    source: "x-forwarded-for" # "remote-address" | "header" | "x-forwarded-for"
    header: "X-Real-IP"
    trustedIPPrefixes: [
      "10.0.0.0/8",
      "172.16.0.0/12",
      "192.168.0.0/16",
    ]
    trustedProxies: 2