Skip to content

Commit 1fdcc7e

Browse files
committed
add vector module
1 parent 259099c commit 1fdcc7e

File tree

16 files changed

+768
-33
lines changed

16 files changed

+768
-33
lines changed

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ cd example
1818
terraform init
1919
terraform apply -target=module.vpc
2020
terraform apply
21-
terraform output output
21+
terraform output all
2222
```
2323

2424
## Security

example/main.tf

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -154,6 +154,7 @@ module "eks" {
154154
enable_victoriametrics = true
155155
enable_grafana = true
156156
enable_uptrace = true
157+
enable_vector_agent = true
157158
enable_qryn = false
158159
enable_openobserve = false
159160
enable_openobserve_collector = false

example/outputs.tf

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
output "output" {
1+
output "all" {
22
value = module.eks
33
sensitive = true
44
}

main.tf

Lines changed: 77 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -668,8 +668,6 @@ module "qryn" {
668668
)
669669
}
670670

671-
672-
673671
module "openobserve" {
674672
source = "./modules/openobserve"
675673
count = var.enable_openobserve ? 1 : 0
@@ -720,6 +718,83 @@ module "openobserve_collector" {
720718
)
721719
}
722720

721+
# https://medium.com/ibm-cloud/log-collectors-performance-benchmarking-8c5218a08fea
722+
# vector is still buggy =\ https://github.com/vectordotdev/vector/issues/12014
723+
module "vector_agent" {
724+
source = "./modules/vector"
725+
count = var.enable_vector_agent ? 1 : 0
726+
727+
create = var.enable_vector_agent
728+
chart_version = var.vector_agent_chart_version
729+
namespace = var.vector_agent_namespace
730+
set = var.vector_agent_set
731+
tags = var.tags
732+
733+
values = concat(
734+
[templatefile("${path.module}/universal_values.yaml", {})],
735+
[
736+
<<-EOT
737+
role: "Agent"
738+
739+
# customConfig -- Override Vector's default configs, if used **all** options need to be specified. This section supports
740+
# using helm templates to populate dynamic values. See Vector's [configuration documentation](https://vector.dev/docs/reference/configuration/)
741+
# for all options.
742+
customConfig:
743+
data_dir: /vector-data-dir
744+
api:
745+
enabled: true
746+
address: 127.0.0.1:8686
747+
playground: false
748+
749+
# https://vector.dev/docs/reference/configuration/sources/
750+
sources:
751+
kubernetes_logs:
752+
type: kubernetes_logs
753+
internal_metrics:
754+
type: internal_metrics
755+
756+
# https://vector.dev/docs/reference/configuration/transforms/
757+
transforms: {}
758+
759+
# https://vector.dev/docs/reference/configuration/sinks/
760+
sinks:
761+
prom_exporter:
762+
type: prometheus_exporter
763+
inputs: [internal_metrics]
764+
address: 0.0.0.0:9090
765+
%{ if var.enable_uptrace == true }
766+
uptrace:
767+
type: "http"
768+
method: "post"
769+
inputs:
770+
- kubernetes_logs
771+
encoding:
772+
codec: "json"
773+
framing:
774+
method: "newline_delimited"
775+
compression: "gzip"
776+
request:
777+
headers:
778+
uptrace-dsn: "http://${module.uptrace[0].project_tokens[1]}@${module.uptrace[0].chart.uptrace}.${module.uptrace[0].namespace.uptrace}.svc:14318/2?grpc=14317"
779+
uri: "http://${module.uptrace[0].chart.uptrace}.${module.uptrace[0].namespace.uptrace}.svc:14318/api/v1/vector/logs"
780+
%{ endif }
781+
%{ if var.enable_qryn == true }
782+
qryn:
783+
type: "loki"
784+
inputs:
785+
- kubernetes_logs
786+
endpoint: "http://${module.qryn[0].chart.qryn}.${module.qryn[0].namespace.qryn}.svc:3100"
787+
auth:
788+
strategy: "basic"
789+
password: "${module.qryn[0].root_password}"
790+
user: "${var.admin_email}"
791+
%{ endif }
792+
EOT
793+
],
794+
var.vector_agent_values
795+
)
796+
}
797+
723798
# DASHBOARD
724799

725800
module "kubernetes_dashboard" {

modules/apisix/main.tf

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,12 +4,12 @@
44

55
resource "random_password" "apisix_admin_key" {
66
length = 32
7-
special = true
7+
special = false
88
}
99

1010
resource "random_password" "apisix_viewer_key" {
1111
length = 32
12-
special = true
12+
special = false
1313
}
1414

1515
module "ingress_apisix" {

modules/grafana/main.tf

Lines changed: 1 addition & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ locals {
1717

1818
resource "random_password" "grafana_admin_password" {
1919
length = 32
20-
special = true
20+
special = false
2121
}
2222

2323
module "kubernetes_manifests" {
@@ -40,15 +40,6 @@ module "kubernetes_manifests" {
4040
username: "${var.admin_user}"
4141
password: "${local.admin_password}"
4242
type: Opaque
43-
- kind: Secret
44-
apiVersion: v1
45-
metadata:
46-
name: "grafana-admin-credentials"
47-
namespace: "${var.namespace}"
48-
stringData:
49-
username: "${var.admin_user}"
50-
password: "${local.admin_password}"
51-
type: Opaque
5243
EOT
5344
]
5445
}

modules/openobserve/main.tf

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@ locals {
3333

3434
resource "random_password" "openobserve_root_password" {
3535
length = 32
36-
special = true
36+
special = false
3737
}
3838

3939
# https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/s3_bucket

modules/opentelemetry-operator/main.tf

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -8,10 +8,15 @@ module "opentelemetry_operator" {
88
name = "admissionWebhooks.certManager.enabled"
99
value = "false"
1010
},
11-
{
12-
name = "admissionWebhooks.certManager.autoGenerateCert.enabled"
13-
value = "true"
14-
},
11+
12+
# Error: values don't meet the specifications of the schema(s) in the following chart(s):
13+
# │ opentelemetry-operator:
14+
# │ - admissionWebhooks.certManager: Additional property autoGenerateCert is not allowed
15+
# {
16+
# name = "admissionWebhooks.certManager.autoGenerateCert.enabled"
17+
# value = "true"
18+
# },
19+
1520
],
1621
var.set
1722
)

modules/qryn/main.tf

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -94,7 +94,7 @@ locals {
9494

9595
resource "random_password" "qryn_root_password" {
9696
length = 32
97-
special = true
97+
special = false
9898
}
9999

100100
resource "random_password" "clickhouse_password" {

modules/uptrace/main.tf

Lines changed: 34 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -99,6 +99,31 @@ locals {
9999
# Overrides public URL for Vue-powered UI.
100100
#addr: 'https://uptrace.mydomain.com'
101101
102+
spans:
103+
# The size of the Go chan used to buffer incoming spans.
104+
# If the buffer is full, Uptrace starts to drop spans.
105+
buffer_size: 100000
106+
107+
# The number of spans to insert in a single query.
108+
#batch_size: 10000
109+
110+
metrics:
111+
# List of attributes to drop for being noisy.
112+
drop_attrs:
113+
- telemetry_sdk_language
114+
- telemetry_sdk_name
115+
- telemetry_sdk_version
116+
117+
# The size of the Go chan used to buffer incoming measures.
118+
# If the buffer is full, Uptrace starts to drop measures.
119+
buffer_size: 100000
120+
121+
# The number of measures to insert in a single query.
122+
#batch_size: 10000
123+
124+
# The size of the buffer for converting cumulative metrics to delta.
125+
#cum_to_delta_size: 100000
126+
102127
## SMTP settings to send emails.
103128
## https://uptrace.dev/get/alerting.html
104129
smtp_mailer:
@@ -267,18 +292,18 @@ locals {
267292

268293
resource "random_password" "uptrace_root_password" {
269294
length = 32
270-
special = true
295+
special = false
271296
}
272297

273298
resource "random_password" "uptrace_project_tokens" {
274299
count = 2
275300
length = 32
276-
special = true
301+
special = false
277302
}
278303

279304
resource "random_password" "uptrace_secret_key" {
280305
length = 32
281-
special = true
306+
special = false
282307
}
283308

284309
resource "random_password" "clickhouse_password" {
@@ -603,9 +628,9 @@ module "grafana_operator_datasource" {
603628
namespace: "${var.grafana_operator_namespace}"
604629
stringData:
605630
token1: "${random_password.uptrace_project_tokens[0].result}"
606-
header1: "http://${random_password.uptrace_project_tokens[0].result}@${module.uptrace.chart.uptrace}.${module.uptrace.namespace.uptrace}.svc:14318/1?grpc=14317"
631+
header1: "http://${random_password.uptrace_project_tokens[0].result}@${module.uptrace.chart}.${module.uptrace.namespace}.svc:14318/1?grpc=14317"
607632
token2: "${random_password.uptrace_project_tokens[1].result}"
608-
header2: "http://${random_password.uptrace_project_tokens[1].result}@${module.uptrace.chart.uptrace}.${module.uptrace.namespace.uptrace}.svc:14318/2?grpc=14317"
633+
header2: "http://${random_password.uptrace_project_tokens[1].result}@${module.uptrace.chart}.${module.uptrace.namespace}.svc:14318/2?grpc=14317"
609634
type: Opaque
610635
- apiVersion: grafana.integreatly.org/v1beta1
611636
kind: GrafanaDatasource
@@ -625,7 +650,7 @@ module "grafana_operator_datasource" {
625650
name: "Uptrace-${var.namespace}"
626651
type: prometheus
627652
access: proxy
628-
url: "http://${module.uptrace.chart.uptrace}.${module.uptrace.namespace.uptrace}.svc:14318/api/prometheus"
653+
url: "http://${module.uptrace.chart}.${module.uptrace.namespace}.svc:14318/api/prometheus"
629654
isDefault: false
630655
jsonData:
631656
"httpHeaderName1": "uptrace-dsn"
@@ -652,7 +677,7 @@ module "grafana_operator_datasource" {
652677
name: "Uptrace-Tempo-${var.namespace}"
653678
type: tempo
654679
access: proxy
655-
url: "http://${module.uptrace.chart.uptrace}.${module.uptrace.namespace.uptrace}.svc:14318/api/tempo"
680+
url: "http://${module.uptrace.chart}.${module.uptrace.namespace}.svc:14318/api/tempo"
656681
isDefault: false
657682
jsonData:
658683
"httpHeaderName1": "uptrace-dsn"
@@ -679,7 +704,7 @@ module "grafana_operator_datasource" {
679704
name: "Uptrace-Monitoring-${var.namespace}"
680705
type: prometheus
681706
access: proxy
682-
url: "http://${module.uptrace.chart.uptrace}.${module.uptrace.namespace.uptrace}.svc:14318/api/prometheus"
707+
url: "http://${module.uptrace.chart}.${module.uptrace.namespace}.svc:14318/api/prometheus"
683708
isDefault: false
684709
jsonData:
685710
"httpHeaderName1": "uptrace-dsn"
@@ -706,7 +731,7 @@ module "grafana_operator_datasource" {
706731
name: "Uptrace-Monitoring-Tempo-${var.namespace}"
707732
type: tempo
708733
access: proxy
709-
url: "http://${module.uptrace.chart.uptrace}.${module.uptrace.namespace.uptrace}.svc:14318/api/tempo"
734+
url: "http://${module.uptrace.chart}.${module.uptrace.namespace}.svc:14318/api/tempo"
710735
isDefault: false
711736
jsonData:
712737
"httpHeaderName1": "uptrace-dsn"

0 commit comments

Comments
 (0)