Skip to content

wip#324

Draft
iksaif wants to merge 4 commits intomasterfrom
corentin.chary/no-aggr
Draft

wip#324
iksaif wants to merge 4 commits intomasterfrom
corentin.chary/no-aggr

Conversation

@iksaif
Copy link
Copy Markdown
Contributor

@iksaif iksaif commented May 11, 2025

TODO:

  • Write better PR description
    -- Why we want that
    --- How the agent works today, with links (including flush and aggregation intervals)
    --- Add Graphs
    --- How to enabled it
    --- Note about dd.cardinality.

Example output:

statsd> my.counter:1|c|#tag1:value1|T1746976020
statsd> my.gauge:1|g|#tag1:value1|T1746976020
statsd> my.counter:1|c|#tag1:value1|T1746976030
statsd> my.gauge:1|g|#tag1:value1|T1746976030
statsd> my.counter:0|c|#tag1:value1|T1746976040
statsd> my.counter:1|c|#tag1:value1|T1746976050
statsd> my.gauge:1|g|#tag1:value1|T1746976050
statsd> my.counter:1|c|#tag1:value1|T1746976060
statsd> my.gauge:1|g|#tag1:value1|T1746976060
^C2025/05/11 17:07:48 Received interrupt signal, shutting down...
statsd> my.counter:0|c|#tag1:value1|T1746976068

For

func main() {
	writer := newPrefixWriter(os.Stdout, "statsd> ")
	client, err := statsd.NewWithWriter(
		writer,
		statsd.WithRecommendedAggregationOptionsWithTimestamps(),
		statsd.WithoutTelemetry())
	if err != nil {
		log.Fatal(err)
	}
	defer client.Close()

	// Create a channel to listen for OS signals
	sigChan := make(chan os.Signal, 1)
	signal.Notify(sigChan, syscall.SIGINT, syscall.SIGTERM)

	ticker := time.NewTicker(15 * time.Second)
	defer ticker.Stop()

	for {
		select {
		case <-ticker.C:
			client.Gauge("my.gauge", 1, []string{"tag1:value1"}, 1)
			client.Count("my.counter", 1, []string{"tag1:value1"}, 1)
		case <-sigChan:
			log.Println("Received interrupt signal, shutting down...")
			return
		}
	}
}

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants