Maven
Maven için şu satırı dahil ederiz. Bunun amacı SpringBoot Metrics Actuator tarafından oluşturulan metriklerin DataDog' un okuyabileceği bir formata çevirmek<dependency><groupId>io.micrometer</groupId><artifactId>micrometer-registry-datadog</artifactId></dependency>
DatadogMeterRegistry Sınıfı
Kullanım
Örnek
Şöyle yaparız.
@SpringBootApplicationpublic class SpringBootDatadogMetricsApplication {public static void main(String[] args) {SpringApplication.run(SpringBootDatadogMetricsApplication.class, args);}@Beanpublic MeterRegistry meterRegistry() {// Configure Datadog-specific settingsDatadogConfig datadogConfig = new DatadogConfig() {@Overridepublic String apiKey() {return "YOUR_DATADOG_API_KEY";}@Overridepublic String get(String key) {return null; // Use the default values for other configuration options}};// Create and return a DatadogMeterRegistryreturn new DatadogMeterRegistry(datadogConfig, Clock.SYSTEM);}// Define a sample counter bean@Beanpublic Counter sampleCounter(MeterRegistry meterRegistry) {return Counter.builder("custom.counter").description("A custom counter metric").register(meterRegistry);}}
Counter nesnesini kullanmak için şöyle yaparız
final Counter sampleCounter; // Constructor Injection ... double valueToRecord = // calculated value sampleCounter.record(valueToRecord);
Eğer Counter nesnesini dinamik olarak yaratmak istersek şöyle yaparız. Burada counter nesnesine tag veriliyor
@Service public class SaleService { final MeterRegistry meterRegistry; public void makeSales(...) { ... Product product = ... Counter salesCounter = Counter.builder("sales.dollarAmount") .description("sales") .tag("productCategory", product.category, "customerAge", customer.age) .register(meterRegistry); salesCounter.record(product.price); } }
Açıklaması şöyle
In Micrometer, tags are key-value pairs that provide additional context to your metrics. They help you organize and categorize your metrics, making it easier to filter and query them. Tags are especially useful when pushing metrics to monitoring systems like Datadog, as they allow you to create more detailed and customized visualizations and alerts.For Example, let’s say you want to record time series metrics on successful amounts of sales of your products. You want to be able to make an analysis based on item categories as well as the age of the customer. While there may be a finite number of categories, you need to be able to support the introduction of a new category without any code change. In that case, you need to be able to construct theCounter object on the fly instead of registering it as a bean.
config metodu
Açıklaması şöyle
Sometimes, you need to track some metrics based on the instance of the server the metric is coming from. These are usually infrastructure-related resources such as CPU, memory, and database connections. Let’s say you want to keep track of database connection usage. You need to pinpoint which cluster of services and which server in the cluster has high usage of database connections. This can be made possible by using common tags.
Örnek
Şöyle yaparız.
@SpringBootApplication public class SpringBootDatadogMetricsApplication { @Value .. String environment; @Value .. String serviceName; @Bean public MeterRegistry meterRegistry() { // Configure Datadog-specific settings DatadogConfig datadogConfig = new DatadogConfig() { @Override public String apiKey() { return "YOUR_DATADOG_API_KEY"; } @Override public String get(String key) { return null; // Use the default values for other configuration options } }; // Create and return a DatadogMeterRegistry and add common tags DatadogMeterRegistry registry = new DatadogMeterRegistry(datadogConfig, Clock.SYSTEM); Config config = registry.config(); HashSet<Tags> tags = new HashSet<>(); tags.add(Tags.of("environment", environment)); tags.add(Tags.of("serviceName", serviceName)); config.commonTags(tags); return registry; } }
EC2 Instance Metadata to Tags ve Adding Metadata for Tagging on ECS Fargate örnekleri de burada
Hiç yorum yok:
Yorum Gönder