Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
47 changes: 47 additions & 0 deletions config/config.go
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
// Deprecated: Use coopdatadog.Start() instead.
package config

import (
Expand All @@ -10,41 +11,71 @@ import (

type (
// DatadogParameters for connection and configuring background process to send information to Datadog Agent
//
// Deprecated: Use coopdatadog.Start() instead.
DatadogParameters interface {
// GetEnv where application is executed, dev, production, staging etc
//
// Deprecated: Use coopdatadog.Start() instead.
GetEnv() string
// GetService how must be service called and displayed in Datadog system
//
// Deprecated: Use coopdatadog.Start() instead.
GetService() string
// GetServiceVersion depends on system, can be Git Tag or API version
//
// Deprecated: Use coopdatadog.Start() instead.
GetServiceVersion() string
// GetDsdEndpoint Socket path or URL for DD StatsD
//
// Deprecated: Use coopdatadog.Start() instead.
GetDsdEndpoint() string
// GetApmEndpoint Socket path or URL for APM and profiler
//
// Deprecated: Use coopdatadog.Start() instead.
GetApmEndpoint() string
// IsExtraProfilingEnabled flag enables more optional profilers not recommended for production.
//
// Deprecated: Use coopdatadog.Start() instead.
IsExtraProfilingEnabled() bool
// IsDataDogConfigValid method to verify if configuration values are correct
//
// Deprecated: Use Validate()
IsDataDogConfigValid() bool
// Validate the DatadogConfig. Returns the first error found, returns nil if
// the configuration is good.
//
// Deprecated: Use coopdatadog.Start() instead.
Validate() error
}

// DatadogConfig that required to connect to Datadog Agent
//
// Deprecated: Use coopdatadog.Start() instead.
DatadogConfig struct {
// Env where application is executed, dev, production, staging etc
//
// Deprecated: Use coopdatadog.Start() instead.
Env string `mapstructure:"dd_env" json:"dd_env,omitempty"`
// Service how must be service called and displayed in Datadog system
//
// Deprecated: Use coopdatadog.Start() instead.
Service string `mapstructure:"dd_service" json:"dd_service,omitempty"`
// ServiceVersion depends on system, can be Git Tag or API version
//
// Deprecated: Use coopdatadog.Start() instead.
ServiceVersion string `mapstructure:"dd_version" json:"dd_service_version,omitempty"`
// DSD Socket path for DD StatsD, important to have unix prefix for that value, example: unix:///var/run/dd/dsd.socket
//
// Deprecated: Use coopdatadog.Start() instead.
DSD string `mapstructure:"dd_dogstatsd_url" json:"dd_dsd,omitempty"`
// APM Socket path for apm and profiler, unix prefix recommended, but not required, example: unix:///var/run/dd/apm.socket
//
// Deprecated: Use coopdatadog.Start() instead.
APM string `mapstructure:"dd_trace_agent_url" json:"dd_apm,omitempty"`
// EnableExtraProfiling flag enables more optional profilers not recommended for production.
//
// Deprecated: Use coopdatadog.Start() instead.
EnableExtraProfiling bool `mapstructure:"dd_enable_extra_profiling" json:"dd_enable_extra_profiling,omitempty"`
}
)
Expand All @@ -62,6 +93,8 @@ func (d DatadogConfig) IsDataDogConfigValid() bool {

// Validate the DatadogConfig. Returns the first error found, returns nil if
// the configuration is good.
//
// Deprecated: Use coopdatadog.Start() instead.
func (d DatadogConfig) Validate() error {
if d.Env == "" {
return errors.New("DD_ENV must be defined")
Expand All @@ -81,23 +114,31 @@ func (d DatadogConfig) Validate() error {
}

// GetEnv where application is executed, dev, production, staging etc
//
// Deprecated: Use coopdatadog.Start() instead.
func (d DatadogConfig) GetEnv() string {
return d.Env
}

// GetService how must be service called and displayed in Datadog system
//
// Deprecated: Use coopdatadog.Start() instead.
func (d DatadogConfig) GetService() string {
return d.Service
}

// GetServiceVersion depends on system, can be Git Tag or API version
//
// Deprecated: Use coopdatadog.Start() instead.
func (d DatadogConfig) GetServiceVersion() string {
return d.ServiceVersion
}

// GetDsdEndpoint Socket path or URL for DD StatsD
// For unix sockets, the unix-scheme prefix is required.
// Example: unix:///var/run/dd/dsd.socket
//
// Deprecated: Use coopdatadog.Start() instead.
func (d DatadogConfig) GetDsdEndpoint() string {
return d.DSD
}
Expand All @@ -106,16 +147,22 @@ func (d DatadogConfig) GetDsdEndpoint() string {
// For unix sockets, the unix-scheme prefix is not needed, but it is recommended to include it.
// Example: unix:///var/run/dd/apm.socket
// Example: http://my-agent:1234
//
// Deprecated: Use coopdatadog.Start() instead.
func (d DatadogConfig) GetApmEndpoint() string {
return d.APM
}

// IsExtraProfilingEnabled return true if profilers not recommended for production are enabled.
//
// Deprecated: Use coopdatadog.Start() instead.
func (d DatadogConfig) IsExtraProfilingEnabled() bool {
return d.EnableExtraProfiling
}

// LoadDatadogConfigFromEnvVars loads a new DatadogConfig from known environment-variables.
//
// Deprecated: Use coopdatadog.Start() instead.
func LoadDatadogConfigFromEnvVars() DatadogConfig {
return DatadogConfig{
Env: os.Getenv(internal.DatadogEnvironment),
Expand Down
21 changes: 19 additions & 2 deletions metric/datadog.go
Original file line number Diff line number Diff line change
Expand Up @@ -12,19 +12,30 @@ import (

type (
// DatadogMetricsClient ...
//
// Deprecated: Use metrics package instead
DatadogMetricsClient interface {
// GetClient statsd client
//
// Deprecated: Use metrics package instead
GetClient() statsd.ClientInterface
// GetDefaultTags that will be used in Datadog metrics
//
// Deprecated: Use metrics package instead
GetDefaultTags() []string
// GetServiceNamePrefix for metric name
//
// Deprecated: Use metrics package instead
GetServiceNamePrefix() string
}

// DatadogMetrics ready to use client to send statsd metrics
//
// Deprecated: Use metrics package instead
DatadogMetrics struct {
client *statsd.Client
ServicePrefix string
client *statsd.Client
ServicePrefix string
// Deprecated: Use metrics package instead
DefaultMetricsTags []string
}
)
Expand Down Expand Up @@ -59,16 +70,22 @@ func NewDatadogMetrics(cfg config.DatadogParameters, orgPrefix string) (*Datadog
}

// GetClient statsd client
//
// Deprecated: Use metrics package instead
func (d DatadogMetrics) GetClient() statsd.ClientInterface {
return d.client
}

// GetDefaultTags that will be used in Datadog metrics
//
// Deprecated: Use metrics package instead
func (d DatadogMetrics) GetDefaultTags() []string {
return d.DefaultMetricsTags
}

// GetServiceNamePrefix for metric name
//
// Deprecated: Use metrics package instead
func (d DatadogMetrics) GetServiceNamePrefix() string {
return d.ServicePrefix
}
32 changes: 29 additions & 3 deletions metric/metric.go
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
// Package metric implements custom metrics with Dogstatsd
//
// Deprecated: use metrics instead
// Deprecated: use metrics package instead
package metric

import (
Expand All @@ -15,40 +15,64 @@ import (

type (
// Name must be in specific format like cart.amount, request.my_request.x etc
//
// Deprecated: Use metrics package instead
Name string
// Type is an Enum type for metric types
//
// Deprecated: Use metrics package instead
Type byte
// Tag categories metric value with Name for Value to display category like PaymentID.
//
// Deprecated: Use metrics package instead
Tag struct {
Name string
Value string
}

// BaseMetricCollector ...
//
// Deprecated: Use metrics package instead
BaseMetricCollector struct {
// Deprecated: Use metrics package instead
DatadogMetrics DatadogMetricsClient
}

// Data for metrics
//
// Deprecated: Use metrics package instead
Data struct {
Name Name
Type Type
// Deprecated: Use metrics package instead
Name Name
// Deprecated: Use metrics package instead
Type Type
// Deprecated: Use metrics package instead
Value float64
// MetricTags level empty if no categories required to relate metric
//
// Deprecated: Use metrics package instead
MetricTags []Tag
}
)

const (
// MetricTypeCountEvents Datadog will aggregate events to show how many events happened in second
//
// Deprecated: Use metrics package instead
MetricTypeCountEvents Type = iota
// MetricTypeEvent send single event to Datadog
//
// Deprecated: Use metrics package instead
MetricTypeEvent
// MetricTypeMeasurement aggregates value of metrics in Datadog for measuring it, like memory or cart value
//
// Deprecated: Use metrics package instead
MetricTypeMeasurement
)

// NewBaseMetricCollector instance
//
// Deprecated: Use coopdatadog.Start() instead.
func NewBaseMetricCollector(dm *DatadogMetrics) *BaseMetricCollector {
return &BaseMetricCollector{DatadogMetrics: dm}
}
Expand Down Expand Up @@ -86,6 +110,8 @@ func (m BaseMetricCollector) AddMetric(ctx context.Context, d Data) {

// GracefulShutdown flushes and closes Datadog client
// ensuring that all metrics are sent before the program exits
//
// Deprecated: Use the StopFunc returned coopdatadog.Start() instead.
func (m BaseMetricCollector) GracefulShutdown() {
if m.DatadogMetrics == nil || m.DatadogMetrics.GetClient() == nil {
return
Expand Down
Loading