How can I track an event time across micro-service












0















I have 3 micro-services, where some events are flowing across the three to reach the final destination. I am using the dropwizard from metric reporting. Following are the dependencies:



<dependency>
<groupId>io.dropwizard.metrics</groupId>
<artifactId>metrics-core</artifactId>
<version>${io.dropwizard.version}</version>
</dependency>
<dependency>
<groupId>io.dropwizard.metrics</groupId>
<artifactId>metrics-graphite</artifactId>
<version>${io.dropwizard.version}</version>
</dependency>
<dependency>
<groupId>io.dropwizard.metrics</groupId>
<artifactId>metrics-servlets</artifactId>
<version>${io.dropwizard.version}</version>
</dependency>


And then I use Grafana to plot the data as reported by these metrices.Following is a example of code for reporting timer:



@Autowired
protected MetricRegistry registry;

public com.codahale.metrics.Timer.Context startTimer(SomeMetric sMetric) {
Timer timer = registry.getTimers().get(MetricRegistry.name(sMetric.getClassName(), sMetric.getName()) + "-Time");
return timer.time();
}


It is working fine, but in this way I can get the time taken in a single micro-service, So is there any way, by how we can get the total time for the event in all 3 microservices, Is it possible is Graphaite or something else.










share|improve this question























  • It is possible with Grafana over Graphite. You probably can use wild card in Grafana. If you share the hierarchy of each metric in Graphite I can show you how to do this.

    – Gal S
    Nov 27 '18 at 18:22
















0















I have 3 micro-services, where some events are flowing across the three to reach the final destination. I am using the dropwizard from metric reporting. Following are the dependencies:



<dependency>
<groupId>io.dropwizard.metrics</groupId>
<artifactId>metrics-core</artifactId>
<version>${io.dropwizard.version}</version>
</dependency>
<dependency>
<groupId>io.dropwizard.metrics</groupId>
<artifactId>metrics-graphite</artifactId>
<version>${io.dropwizard.version}</version>
</dependency>
<dependency>
<groupId>io.dropwizard.metrics</groupId>
<artifactId>metrics-servlets</artifactId>
<version>${io.dropwizard.version}</version>
</dependency>


And then I use Grafana to plot the data as reported by these metrices.Following is a example of code for reporting timer:



@Autowired
protected MetricRegistry registry;

public com.codahale.metrics.Timer.Context startTimer(SomeMetric sMetric) {
Timer timer = registry.getTimers().get(MetricRegistry.name(sMetric.getClassName(), sMetric.getName()) + "-Time");
return timer.time();
}


It is working fine, but in this way I can get the time taken in a single micro-service, So is there any way, by how we can get the total time for the event in all 3 microservices, Is it possible is Graphaite or something else.










share|improve this question























  • It is possible with Grafana over Graphite. You probably can use wild card in Grafana. If you share the hierarchy of each metric in Graphite I can show you how to do this.

    – Gal S
    Nov 27 '18 at 18:22














0












0








0








I have 3 micro-services, where some events are flowing across the three to reach the final destination. I am using the dropwizard from metric reporting. Following are the dependencies:



<dependency>
<groupId>io.dropwizard.metrics</groupId>
<artifactId>metrics-core</artifactId>
<version>${io.dropwizard.version}</version>
</dependency>
<dependency>
<groupId>io.dropwizard.metrics</groupId>
<artifactId>metrics-graphite</artifactId>
<version>${io.dropwizard.version}</version>
</dependency>
<dependency>
<groupId>io.dropwizard.metrics</groupId>
<artifactId>metrics-servlets</artifactId>
<version>${io.dropwizard.version}</version>
</dependency>


And then I use Grafana to plot the data as reported by these metrices.Following is a example of code for reporting timer:



@Autowired
protected MetricRegistry registry;

public com.codahale.metrics.Timer.Context startTimer(SomeMetric sMetric) {
Timer timer = registry.getTimers().get(MetricRegistry.name(sMetric.getClassName(), sMetric.getName()) + "-Time");
return timer.time();
}


It is working fine, but in this way I can get the time taken in a single micro-service, So is there any way, by how we can get the total time for the event in all 3 microservices, Is it possible is Graphaite or something else.










share|improve this question














I have 3 micro-services, where some events are flowing across the three to reach the final destination. I am using the dropwizard from metric reporting. Following are the dependencies:



<dependency>
<groupId>io.dropwizard.metrics</groupId>
<artifactId>metrics-core</artifactId>
<version>${io.dropwizard.version}</version>
</dependency>
<dependency>
<groupId>io.dropwizard.metrics</groupId>
<artifactId>metrics-graphite</artifactId>
<version>${io.dropwizard.version}</version>
</dependency>
<dependency>
<groupId>io.dropwizard.metrics</groupId>
<artifactId>metrics-servlets</artifactId>
<version>${io.dropwizard.version}</version>
</dependency>


And then I use Grafana to plot the data as reported by these metrices.Following is a example of code for reporting timer:



@Autowired
protected MetricRegistry registry;

public com.codahale.metrics.Timer.Context startTimer(SomeMetric sMetric) {
Timer timer = registry.getTimers().get(MetricRegistry.name(sMetric.getClassName(), sMetric.getName()) + "-Time");
return timer.time();
}


It is working fine, but in this way I can get the time taken in a single micro-service, So is there any way, by how we can get the total time for the event in all 3 microservices, Is it possible is Graphaite or something else.







spring-boot microservices dropwizard grafana graphite






share|improve this question













share|improve this question











share|improve this question




share|improve this question










asked Nov 21 '18 at 7:14









Arpan DasArpan Das

3421037




3421037













  • It is possible with Grafana over Graphite. You probably can use wild card in Grafana. If you share the hierarchy of each metric in Graphite I can show you how to do this.

    – Gal S
    Nov 27 '18 at 18:22



















  • It is possible with Grafana over Graphite. You probably can use wild card in Grafana. If you share the hierarchy of each metric in Graphite I can show you how to do this.

    – Gal S
    Nov 27 '18 at 18:22

















It is possible with Grafana over Graphite. You probably can use wild card in Grafana. If you share the hierarchy of each metric in Graphite I can show you how to do this.

– Gal S
Nov 27 '18 at 18:22





It is possible with Grafana over Graphite. You probably can use wild card in Grafana. If you share the hierarchy of each metric in Graphite I can show you how to do this.

– Gal S
Nov 27 '18 at 18:22












0






active

oldest

votes











Your Answer






StackExchange.ifUsing("editor", function () {
StackExchange.using("externalEditor", function () {
StackExchange.using("snippets", function () {
StackExchange.snippets.init();
});
});
}, "code-snippets");

StackExchange.ready(function() {
var channelOptions = {
tags: "".split(" "),
id: "1"
};
initTagRenderer("".split(" "), "".split(" "), channelOptions);

StackExchange.using("externalEditor", function() {
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled) {
StackExchange.using("snippets", function() {
createEditor();
});
}
else {
createEditor();
}
});

function createEditor() {
StackExchange.prepareEditor({
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: true,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: 10,
bindNavPrevention: true,
postfix: "",
imageUploader: {
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
},
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
});


}
});














draft saved

draft discarded


















StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53406963%2fhow-can-i-track-an-event-time-across-micro-service%23new-answer', 'question_page');
}
);

Post as a guest















Required, but never shown

























0






active

oldest

votes








0






active

oldest

votes









active

oldest

votes






active

oldest

votes
















draft saved

draft discarded




















































Thanks for contributing an answer to Stack Overflow!


  • Please be sure to answer the question. Provide details and share your research!

But avoid



  • Asking for help, clarification, or responding to other answers.

  • Making statements based on opinion; back them up with references or personal experience.


To learn more, see our tips on writing great answers.




draft saved


draft discarded














StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53406963%2fhow-can-i-track-an-event-time-across-micro-service%23new-answer', 'question_page');
}
);

Post as a guest















Required, but never shown





















































Required, but never shown














Required, but never shown












Required, but never shown







Required, but never shown

































Required, but never shown














Required, but never shown












Required, but never shown







Required, but never shown







這個網誌中的熱門文章

Xamarin.form Move up view when keyboard appear

Post-Redirect-Get with Spring WebFlux and Thymeleaf

Anylogic : not able to use stopDelay()