From 7871ce18a2faccb28c2a889501f7d611a715f28d Mon Sep 17 00:00:00 2001 From: Carlo Goetz Date: Thu, 7 May 2026 13:40:10 +0200 Subject: [PATCH 1/2] feat(observability) add various otlp URLs to resource and data source --- .../observability/instance/datasource.go | 9 +++++++ .../observability/instance/resource.go | 24 +++++++++++++++++++ .../observability/instance/resource_test.go | 8 +++++++ .../observability/observability_acc_test.go | 15 ++++++++++++ 4 files changed, 56 insertions(+) diff --git a/stackit/internal/services/observability/instance/datasource.go b/stackit/internal/services/observability/instance/datasource.go index 4ec4f7b65..3a9576c06 100644 --- a/stackit/internal/services/observability/instance/datasource.go +++ b/stackit/internal/services/observability/instance/datasource.go @@ -189,6 +189,15 @@ func (d *instanceDataSource) Schema(_ context.Context, _ datasource.SchemaReques "jaeger_ui_url": schema.StringAttribute{ Computed: true, }, + "otlp_grpc_traces_url": schema.StringAttribute{ + Computed: true, + }, + "otlp_http_logs_url": schema.StringAttribute{ + Computed: true, + }, + "otlp_http_traces_url": schema.StringAttribute{ + Computed: true, + }, "otlp_traces_url": schema.StringAttribute{ Computed: true, }, diff --git a/stackit/internal/services/observability/instance/resource.go b/stackit/internal/services/observability/instance/resource.go index 5a8fae543..dad8240fe 100644 --- a/stackit/internal/services/observability/instance/resource.go +++ b/stackit/internal/services/observability/instance/resource.go @@ -83,6 +83,9 @@ type Model struct { LogsPushURL types.String `tfsdk:"logs_push_url"` JaegerTracesURL types.String `tfsdk:"jaeger_traces_url"` JaegerUIURL types.String `tfsdk:"jaeger_ui_url"` + OtlpGRPCTracesURL types.String `tfsdk:"otlp_grpc_traces_url"` + OtlpHTTPLogsURL types.String `tfsdk:"otlp_http_logs_url"` + OtlpHTTPTracesURL types.String `tfsdk:"otlp_http_traces_url"` OtlpTracesURL types.String `tfsdk:"otlp_traces_url"` ZipkinSpansURL types.String `tfsdk:"zipkin_spans_url"` ACL types.Set `tfsdk:"acl"` @@ -609,6 +612,24 @@ func (r *instanceResource) Schema(_ context.Context, _ resource.SchemaRequest, r stringplanmodifier.UseStateForUnknown(), }, }, + "otlp_grpc_traces_url": schema.StringAttribute{ + Computed: true, + PlanModifiers: []planmodifier.String{ + stringplanmodifier.UseStateForUnknown(), + }, + }, + "otlp_http_logs_url": schema.StringAttribute{ + Computed: true, + PlanModifiers: []planmodifier.String{ + stringplanmodifier.UseStateForUnknown(), + }, + }, + "otlp_http_traces_url": schema.StringAttribute{ + Computed: true, + PlanModifiers: []planmodifier.String{ + stringplanmodifier.UseStateForUnknown(), + }, + }, "otlp_traces_url": schema.StringAttribute{ Computed: true, PlanModifiers: []planmodifier.String{ @@ -1613,6 +1634,9 @@ func mapFields(ctx context.Context, r *observability.GetInstanceResponse, model model.LogsPushURL = types.StringPointerValue(i.LogsPushUrl) model.JaegerTracesURL = types.StringPointerValue(i.JaegerTracesUrl) model.JaegerUIURL = types.StringPointerValue(i.JaegerUiUrl) + model.OtlpGRPCTracesURL = types.StringPointerValue(i.OtlpGrpcTracesUrl) + model.OtlpHTTPLogsURL = types.StringPointerValue(i.OtlpHttpLogsUrl) + model.OtlpHTTPTracesURL = types.StringPointerValue(i.OtlpHttpTracesUrl) model.OtlpTracesURL = types.StringPointerValue(i.OtlpTracesUrl) model.ZipkinSpansURL = types.StringPointerValue(i.ZipkinSpansUrl) model.GrafanaAdminEnabled = types.BoolPointerValue(i.GrafanaAdminEnabled) diff --git a/stackit/internal/services/observability/instance/resource_test.go b/stackit/internal/services/observability/instance/resource_test.go index 305e02da1..fe64cba5f 100644 --- a/stackit/internal/services/observability/instance/resource_test.go +++ b/stackit/internal/services/observability/instance/resource_test.go @@ -402,6 +402,10 @@ func TestMapFields(t *testing.T) { MetricsRetentionTimeRaw: new(int64(60)), MetricsRetentionTime1h: new(int64(30)), MetricsRetentionTime5m: new(int64(7)), + OtlpTracesUrl: new("otlp_traces"), + OtlpGrpcTracesUrl: new("otlp_grpc_traces"), + OtlpHttpTracesUrl: new("otlp_http_traces"), + OtlpHttpLogsUrl: new("otlp_http_logs"), }, }, &observability.ListACLResponse{ @@ -433,6 +437,10 @@ func TestMapFields(t *testing.T) { MetricsRetentionDays: types.Int64Value(60), MetricsRetentionDays1hDownsampling: types.Int64Value(30), MetricsRetentionDays5mDownsampling: types.Int64Value(7), + OtlpTracesURL: types.StringValue("otlp_traces"), + OtlpGRPCTracesURL: types.StringValue("otlp_grpc_traces"), + OtlpHTTPTracesURL: types.StringValue("otlp_http_traces"), + OtlpHTTPLogsURL: types.StringValue("otlp_http_logs"), }, true, }, diff --git a/stackit/internal/services/observability/observability_acc_test.go b/stackit/internal/services/observability/observability_acc_test.go index b9d5d5538..18bbda6c7 100644 --- a/stackit/internal/services/observability/observability_acc_test.go +++ b/stackit/internal/services/observability/observability_acc_test.go @@ -180,6 +180,9 @@ func TestAccResourceMin(t *testing.T) { resource.TestCheckResourceAttrSet("stackit_observability_instance.instance", "logs_push_url"), resource.TestCheckResourceAttrSet("stackit_observability_instance.instance", "jaeger_traces_url"), resource.TestCheckResourceAttrSet("stackit_observability_instance.instance", "jaeger_ui_url"), + resource.TestCheckResourceAttrSet("stackit_observability_instance.instance", "otlp_grpc_traces_url"), + resource.TestCheckResourceAttrSet("stackit_observability_instance.instance", "otlp_http_logs_url"), + resource.TestCheckResourceAttrSet("stackit_observability_instance.instance", "otlp_http_traces_url"), resource.TestCheckResourceAttrSet("stackit_observability_instance.instance", "otlp_traces_url"), resource.TestCheckResourceAttrSet("stackit_observability_instance.instance", "zipkin_spans_url"), @@ -429,6 +432,9 @@ func TestAccResourceMin(t *testing.T) { resource.TestCheckResourceAttrSet("stackit_observability_instance.instance", "logs_push_url"), resource.TestCheckResourceAttrSet("stackit_observability_instance.instance", "jaeger_traces_url"), resource.TestCheckResourceAttrSet("stackit_observability_instance.instance", "jaeger_ui_url"), + resource.TestCheckResourceAttrSet("stackit_observability_instance.instance", "otlp_grpc_traces_url"), + resource.TestCheckResourceAttrSet("stackit_observability_instance.instance", "otlp_http_logs_url"), + resource.TestCheckResourceAttrSet("stackit_observability_instance.instance", "otlp_http_traces_url"), resource.TestCheckResourceAttrSet("stackit_observability_instance.instance", "otlp_traces_url"), resource.TestCheckResourceAttrSet("stackit_observability_instance.instance", "zipkin_spans_url"), @@ -513,6 +519,9 @@ func TestAccResourceMax(t *testing.T) { resource.TestCheckResourceAttrSet("stackit_observability_instance.instance", "logs_push_url"), resource.TestCheckResourceAttrSet("stackit_observability_instance.instance", "jaeger_traces_url"), resource.TestCheckResourceAttrSet("stackit_observability_instance.instance", "jaeger_ui_url"), + resource.TestCheckResourceAttrSet("stackit_observability_instance.instance", "otlp_grpc_traces_url"), + resource.TestCheckResourceAttrSet("stackit_observability_instance.instance", "otlp_http_logs_url"), + resource.TestCheckResourceAttrSet("stackit_observability_instance.instance", "otlp_http_traces_url"), resource.TestCheckResourceAttrSet("stackit_observability_instance.instance", "otlp_traces_url"), resource.TestCheckResourceAttrSet("stackit_observability_instance.instance", "zipkin_spans_url"), @@ -688,6 +697,9 @@ func TestAccResourceMax(t *testing.T) { resource.TestCheckResourceAttrSet("data.stackit_observability_instance.instance", "logs_push_url"), resource.TestCheckResourceAttrSet("data.stackit_observability_instance.instance", "jaeger_traces_url"), resource.TestCheckResourceAttrSet("data.stackit_observability_instance.instance", "jaeger_ui_url"), + resource.TestCheckResourceAttrSet("data.stackit_observability_instance.instance", "otlp_grpc_traces_url"), + resource.TestCheckResourceAttrSet("data.stackit_observability_instance.instance", "otlp_http_logs_url"), + resource.TestCheckResourceAttrSet("data.stackit_observability_instance.instance", "otlp_http_traces_url"), resource.TestCheckResourceAttrSet("data.stackit_observability_instance.instance", "otlp_traces_url"), resource.TestCheckResourceAttrSet("data.stackit_observability_instance.instance", "zipkin_spans_url"), @@ -920,6 +932,9 @@ func TestAccResourceMax(t *testing.T) { resource.TestCheckResourceAttrSet("stackit_observability_instance.instance", "logs_push_url"), resource.TestCheckResourceAttrSet("stackit_observability_instance.instance", "jaeger_traces_url"), resource.TestCheckResourceAttrSet("stackit_observability_instance.instance", "jaeger_ui_url"), + resource.TestCheckResourceAttrSet("stackit_observability_instance.instance", "otlp_grpc_traces_url"), + resource.TestCheckResourceAttrSet("stackit_observability_instance.instance", "otlp_http_logs_url"), + resource.TestCheckResourceAttrSet("stackit_observability_instance.instance", "otlp_http_traces_url"), resource.TestCheckResourceAttrSet("stackit_observability_instance.instance", "otlp_traces_url"), resource.TestCheckResourceAttrSet("stackit_observability_instance.instance", "zipkin_spans_url"), From b801f7dd50c0b879d3ae1856979a4372cf0804f1 Mon Sep 17 00:00:00 2001 From: Carlo Goetz Date: Thu, 7 May 2026 13:45:36 +0200 Subject: [PATCH 2/2] fix(observability) generate docs --- docs/data-sources/observability_instance.md | 3 +++ docs/resources/observability_instance.md | 3 +++ 2 files changed, 6 insertions(+) diff --git a/docs/data-sources/observability_instance.md b/docs/data-sources/observability_instance.md index 033042553..3961f1e75 100644 --- a/docs/data-sources/observability_instance.md +++ b/docs/data-sources/observability_instance.md @@ -51,6 +51,9 @@ data "stackit_observability_instance" "example" { - `metrics_retention_days_5m_downsampling` (Number) Specifies for how many days the 5m downsampled metrics are kept. must be less than the value of the general retention. Default is set to `90`. - `metrics_url` (String) Specifies metrics URL. - `name` (String) The name of the Observability instance. +- `otlp_grpc_traces_url` (String) +- `otlp_http_logs_url` (String) +- `otlp_http_traces_url` (String) - `otlp_traces_url` (String) - `parameters` (Map of String) Additional parameters. - `plan_id` (String) The Observability plan ID. diff --git a/docs/resources/observability_instance.md b/docs/resources/observability_instance.md index 4b465ccf9..c0d99224a 100644 --- a/docs/resources/observability_instance.md +++ b/docs/resources/observability_instance.md @@ -70,6 +70,9 @@ import { - `logs_url` (String) Specifies Logs URL. - `metrics_push_url` (String) Specifies URL for pushing metrics. - `metrics_url` (String) Specifies metrics URL. +- `otlp_grpc_traces_url` (String) +- `otlp_http_logs_url` (String) +- `otlp_http_traces_url` (String) - `otlp_traces_url` (String) - `plan_id` (String) The Observability plan ID. - `targets_url` (String) Specifies Targets URL.