Skip to content

Commit

Permalink
fixes jaegertracing#2207 by adding server-url to JaegerMetricsStorage…
Browse files Browse the repository at this point in the history
…Spec (jaegertracing#2481)

* fixes jaegertracing#2207 by adding server-url to JaegerMetricsStorageSpec as
ServerUrl for providing external prometheus service url. Added test for
verifying env variable PROMETHEUS_SERVER_URL is not empty when specifying metric storage type as prometheus for both AllInOne and Query.

Signed-off-by: Gaurav Singh <[email protected]>

* added empty check for ServerUrl while setting env for external
prometheus instance

Signed-off-by: Gaurav Singh <[email protected]>

* updated manifests by running make bundle

Signed-off-by: Gaurav Singh <[email protected]>

* updated api.md by running make api-docs

Signed-off-by: amerlin <[email protected]>

* fix format of pkg/ingress/query_test.go

Signed-off-by: amerlin <[email protected]>

* fix format of pkg/deployment/query_test.go

Signed-off-by: amerlin <[email protected]>

* updated test TestQueryIngressClass from pkg/ingress/query_test.go by
remove empty check for ingress as it will be taken care by default
ingressclass func

Signed-off-by: amerlin <[email protected]>

* fixed format

Signed-off-by: amerlin <[email protected]>

---------

Signed-off-by: Gaurav Singh <[email protected]>
Signed-off-by: amerlin <[email protected]>
Co-authored-by: Gaurav Singh <[email protected]>
  • Loading branch information
antoniomerlin and Gaurav Singh authored Mar 20, 2024
1 parent 992ce6a commit c9c063d
Show file tree
Hide file tree
Showing 8 changed files with 65 additions and 0 deletions.
3 changes: 3 additions & 0 deletions apis/v1/jaeger_types.go
Original file line number Diff line number Diff line change
Expand Up @@ -576,6 +576,9 @@ type JaegerStorageSpec struct {
type JaegerMetricsStorageSpec struct {
// +optional
Type JaegerStorageType `json:"type,omitempty"`

// +optional
ServerUrl string `json:"server-url,omitempty"`
}

// ElasticsearchSpec represents the ES configuration options that we pass down to the OpenShift Elasticsearch operator.
Expand Down
4 changes: 4 additions & 0 deletions bundle/manifests/jaegertracing.io_jaegers.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -2564,6 +2564,8 @@ spec:
type: object
metricsStorage:
properties:
server-url:
type: string
type:
type: string
type: object
Expand Down Expand Up @@ -8850,6 +8852,8 @@ spec:
type: object
metricsStorage:
properties:
server-url:
type: string
type:
type: string
type: object
Expand Down
4 changes: 4 additions & 0 deletions config/crd/bases/jaegertracing.io_jaegers.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -2561,6 +2561,8 @@ spec:
type: object
metricsStorage:
properties:
server-url:
type: string
type:
type: string
type: object
Expand Down Expand Up @@ -8847,6 +8849,8 @@ spec:
type: object
metricsStorage:
properties:
server-url:
type: string
type:
type: string
type: object
Expand Down
14 changes: 14 additions & 0 deletions docs/api.md
Original file line number Diff line number Diff line change
Expand Up @@ -9556,6 +9556,13 @@ Resource Types:
</tr>
</thead>
<tbody><tr>
<td><b>server-url</b></td>
<td>string</td>
<td>
<br/>
</td>
<td>false</td>
</tr><tr>
<td><b>type</b></td>
<td>string</td>
<td>
Expand Down Expand Up @@ -33321,6 +33328,13 @@ Resource Types:
</tr>
</thead>
<tbody><tr>
<td><b>server-url</b></td>
<td>string</td>
<td>
<br/>
</td>
<td>false</td>
</tr><tr>
<td><b>type</b></td>
<td>string</td>
<td>
Expand Down
8 changes: 8 additions & 0 deletions pkg/deployment/all_in_one.go
Original file line number Diff line number Diff line change
Expand Up @@ -152,6 +152,14 @@ func (a *AllInOne) Get() *appsv1.Deployment {
Value: strconv.FormatBool(jaegerDisabled),
},
}

if a.jaeger.Spec.AllInOne.MetricsStorage.Type == "prometheus" && a.jaeger.Spec.AllInOne.MetricsStorage.ServerUrl != "" {
envVars = append(envVars, corev1.EnvVar{
Name: "PROMETHEUS_SERVER_URL",
Value: a.jaeger.Spec.AllInOne.MetricsStorage.ServerUrl,
})
}

envVars = append(envVars, proxy.ReadProxyVarsFromEnv()...)

ports := []corev1.ContainerPort{
Expand Down
12 changes: 12 additions & 0 deletions pkg/deployment/all_in_one_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -608,6 +608,18 @@ func TestAllInOnePriorityClassName(t *testing.T) {
assert.Equal(t, priorityClassName, dep.Spec.Template.Spec.PriorityClassName)
}

func TestAllInOnePrometheusMetricStorage(t *testing.T) {
jaeger := v1.NewJaeger(types.NamespacedName{Name: "TestAllInOnePrometheusMetricStorage"})

jaeger.Spec.AllInOne.MetricsStorage.Type = "prometheus"
jaeger.Spec.AllInOne.MetricsStorage.ServerUrl = "http://prometheus:9090"

d := NewAllInOne(jaeger).Get()

assert.Equal(t, "prometheus", getEnvVarByName(d.Spec.Template.Spec.Containers[0].Env, "METRICS_STORAGE_TYPE").Value)
assert.NotEmpty(t, getEnvVarByName(d.Spec.Template.Spec.Containers[0].Env, "PROMETHEUS_SERVER_URL").Value)
}

func getEnvVarByName(vars []corev1.EnvVar, name string) corev1.EnvVar {
envVar := corev1.EnvVar{}
for _, v := range vars {
Expand Down
8 changes: 8 additions & 0 deletions pkg/deployment/query.go
Original file line number Diff line number Diff line change
Expand Up @@ -135,6 +135,14 @@ func (q *Query) Get() *appsv1.Deployment {
Value: strconv.FormatBool(jaegerDisabled),
},
}

if q.jaeger.Spec.Query.MetricsStorage.Type == "prometheus" {
envVars = append(envVars, corev1.EnvVar{
Name: "PROMETHEUS_SERVER_URL",
Value: q.jaeger.Spec.Query.MetricsStorage.ServerUrl,
})
}

envVars = append(envVars, proxy.ReadProxyVarsFromEnv()...)
deployment := &appsv1.Deployment{
TypeMeta: metav1.TypeMeta{
Expand Down
12 changes: 12 additions & 0 deletions pkg/deployment/query_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -510,3 +510,15 @@ func TestQueryNodeSelector(t *testing.T) {

assert.Equal(t, nodeSelector, dep.Spec.Template.Spec.NodeSelector)
}

func TestQueryPrometheusMetricStorage(t *testing.T) {
jaeger := v1.NewJaeger(types.NamespacedName{Name: "TestQueryPrometheusMetricStorage"})

jaeger.Spec.Query.MetricsStorage.Type = "prometheus"
jaeger.Spec.Query.MetricsStorage.ServerUrl = "http://prometheus:9090"

d := NewQuery(jaeger).Get()

assert.Equal(t, "prometheus", getEnvVarByName(d.Spec.Template.Spec.Containers[0].Env, "METRICS_STORAGE_TYPE").Value)
assert.NotEmpty(t, getEnvVarByName(d.Spec.Template.Spec.Containers[0].Env, "PROMETHEUS_SERVER_URL").Value)
}

0 comments on commit c9c063d

Please sign in to comment.