Skip to content

Commit ea615a3

Browse files
authored
[Feature] New metrics options (#548)
1 parent 4de3a3b commit ea615a3

File tree

16 files changed

+790
-70
lines changed

16 files changed

+790
-70
lines changed

Diff for: chart/kube-arangodb/templates/deployment-operator/role.yaml

+1-1
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ rules:
3030
verbs: ["get", "list", "watch"]
3131
- apiGroups: ["monitoring.coreos.com"]
3232
resources: ["servicemonitors"]
33-
verbs: ["get", "create", "delete"]
33+
verbs: ["get", "create", "delete", "update"]
3434

3535
{{- end }}
3636
{{- end }}

Diff for: chart/kube-arangodb/values.yaml

+1-1
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@ operator:
3333

3434
images:
3535
base: alpine:3.11
36-
metricsExporter: arangodb/arangodb-exporter:0.1.6
36+
metricsExporter: arangodb/arangodb-exporter:0.1.7
3737
arango: arangodb/arangodb:latest
3838
rbac:
3939
enabled: true

Diff for: pkg/apis/deployment/v1/metrics_spec.go

+43
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@
1717
//
1818
// Copyright holder is ArangoDB GmbH, Cologne, Germany
1919
//
20+
// Adam Janikowski
2021
//
2122

2223
package v1
@@ -33,12 +34,54 @@ type MetricsAuthenticationSpec struct {
3334
JWTTokenSecretName *string `json:"jwtTokenSecretName,omitempty"`
3435
}
3536

37+
// MetricsMode defines mode for metrics exporter
38+
type MetricsMode string
39+
40+
func (m MetricsMode) New() *MetricsMode {
41+
return &m
42+
}
43+
44+
func (m MetricsMode) GetMetricsEndpoint() string {
45+
switch m {
46+
case MetricsModeInternal:
47+
return k8sutil.ArangoExporterInternalEndpoint
48+
default:
49+
return k8sutil.ArangoExporterDefaultEndpoint
50+
}
51+
}
52+
53+
const (
54+
// MetricsModeExporter exporter mode for old exporter type
55+
MetricsModeExporter MetricsMode = "exporter"
56+
MetricsModeSidecar MetricsMode = "sidecar"
57+
MetricsModeInternal MetricsMode = "internal"
58+
)
59+
60+
func (m *MetricsMode) Get() MetricsMode {
61+
if m == nil {
62+
return MetricsModeExporter
63+
}
64+
65+
return *m
66+
}
67+
3668
// MetricsSpec contains spec for arangodb exporter
3769
type MetricsSpec struct {
3870
Enabled *bool `json:"enabled,omitempty"`
3971
Image *string `json:"image,omitempty"`
4072
Authentication MetricsAuthenticationSpec `json:"authentication,omitempty"`
4173
Resources v1.ResourceRequirements `json:"resources,omitempty"`
74+
Mode *MetricsMode `json:"mode,omitempty"`
75+
76+
Port *uint16 `json:"port,omitempty"`
77+
}
78+
79+
func (s *MetricsSpec) GetPort() uint16 {
80+
if s == nil || s.Port == nil {
81+
return k8sutil.ArangoExporterPort
82+
}
83+
84+
return *s.Port
4285
}
4386

4487
// IsEnabled returns whether metrics are enabled or not

0 commit comments

Comments
 (0)