Skip to content

Commit

Permalink
PR comments part 2
Browse files Browse the repository at this point in the history
  • Loading branch information
thampiotr committed May 21, 2024
1 parent 285659c commit a875a23
Show file tree
Hide file tree
Showing 2 changed files with 53 additions and 6 deletions.
3 changes: 3 additions & 0 deletions docs/sources/reference/components/prometheus.scrape.md
Original file line number Diff line number Diff line change
Expand Up @@ -84,6 +84,9 @@ a scrape. The following values are supported:
- `PrometheusProto`
- `PrometheusText0.0.4`

If you were using the now deprecated `enable_protobuf_negotiation` argument, switch
to using `scrape_protocols = ["PrometheusProto", "OpenMetricsText1.0.0", "OpenMetricsText0.0.1", "PrometheusText0.0.4"]` instead.

{{< docs/shared lookup="reference/components/http-client-proxy-config-description.md" source="alloy" version="<ALLOY_VERSION>" >}}

`track_timestamps_staleness` controls whether Prometheus tracks [staleness][prom-staleness] of metrics with an explicit timestamp present in scraped data.
Expand Down
56 changes: 50 additions & 6 deletions internal/component/prometheus/scrape/scrape_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -8,19 +8,21 @@ import (
"testing"
"time"

"github.com/grafana/ckit/memconn"
prometheus_client "github.com/prometheus/client_golang/prometheus"
"github.com/prometheus/client_golang/prometheus/promhttp"
"github.com/prometheus/prometheus/model/labels"
"github.com/prometheus/prometheus/storage"
"github.com/stretchr/testify/require"

"github.com/grafana/alloy/internal/component"
component_config "github.com/grafana/alloy/internal/component/common/config"
"github.com/grafana/alloy/internal/component/prometheus"
"github.com/grafana/alloy/internal/service/cluster"
http_service "github.com/grafana/alloy/internal/service/http"
"github.com/grafana/alloy/internal/service/labelstore"
"github.com/grafana/alloy/internal/util"
"github.com/grafana/alloy/syntax"
"github.com/grafana/ckit/memconn"
prometheus_client "github.com/prometheus/client_golang/prometheus"
"github.com/prometheus/client_golang/prometheus/promhttp"
"github.com/prometheus/prometheus/model/labels"
"github.com/prometheus/prometheus/storage"
"github.com/stretchr/testify/require"
)

func TestAlloyConfig(t *testing.T) {
Expand Down Expand Up @@ -51,6 +53,48 @@ func TestAlloyConfig(t *testing.T) {
require.NoError(t, err)
}

func TestDefaults(t *testing.T) {
var args Arguments
args.SetToDefault()
require.NoError(t, args.Validate())

require.Equal(t, "/metrics", args.MetricsPath)
require.Equal(t, "http", args.Scheme)
require.Equal(t, false, args.HonorLabels)
require.Equal(t, true, args.HonorTimestamps)
require.Equal(t, false, args.TrackTimestampsStaleness)
require.Equal(t, component_config.DefaultHTTPClientConfig, args.HTTPClientConfig)
require.Equal(t, time.Minute, args.ScrapeInterval)
require.Equal(t, time.Second*10, args.ScrapeTimeout)
require.Equal(t, []string{
"OpenMetricsText1.0.0",
"OpenMetricsText0.0.1",
"PrometheusText0.0.4",
}, args.ScrapeProtocols)
}

func TestDefaultsWithNativeHistograms(t *testing.T) {
var args Arguments
args.SetToDefault()
args.EnableProtobufNegotiation = true
require.NoError(t, args.Validate())

require.Equal(t, "/metrics", args.MetricsPath)
require.Equal(t, "http", args.Scheme)
require.Equal(t, false, args.HonorLabels)
require.Equal(t, true, args.HonorTimestamps)
require.Equal(t, false, args.TrackTimestampsStaleness)
require.Equal(t, component_config.DefaultHTTPClientConfig, args.HTTPClientConfig)
require.Equal(t, time.Minute, args.ScrapeInterval)
require.Equal(t, time.Second*10, args.ScrapeTimeout)
require.Equal(t, []string{
"PrometheusProto",
"OpenMetricsText1.0.0",
"OpenMetricsText0.0.1",
"PrometheusText0.0.4",
}, args.ScrapeProtocols)
}

func TestBadAlloyConfig(t *testing.T) {
var exampleAlloyConfig = `
targets = [{ "target1" = "target1" }]
Expand Down

0 comments on commit a875a23

Please sign in to comment.