The Daml Observability Example
Nothing is loaded from YouTube until you press play, and then without tracking cookies.
About this video
๐ To get started with Daml, visit bit.ly/trydaml ๐ Check out our blog blog.digitalasset.com/developers Customers must monitor Daml Enterprise in production or testing to ensure no issues. But what are the essential metrics to monitor and how should they be grouped together? The Daml Observability Example is a public Git repo that allows customers to answer this question by providing a hands-on example so they see and learn: How to monitor the health of their Daml solution, involving Canton, HTTP JSON API server, Trigger services, etc. If something is unhealthy, how to diagnose the issue by drilling down to find the root cause. The public repository is github.com/digital-asset/daml-platform-observability-example.
Transcript
1,159 wordsCaptions as YouTube publishes them, usually machine-generated, so names such as Daml and Canton can be misheard.
- 0:01
hello everyone I'd like to announce the general availability of the demo platform observability example what is this well let me explain it to you first of all it's just stepping back I'm sure you'd agree that monitoring your health is important you measure your vital signs when you're healthy you're usually proactive and that you will have an annual checker to check for potential issues and meanwhile when you're collecting all this data when you're healthy you can
- 0:34
use that later to diagnose an issue when you aren't that healthy well the same is true for monitoring the health of abdominal solution on the right we have a high level view of what constitutes a dental solution and in demo 2.6 GA we included the golden signals and key metrics for monitoring that monitoring is to check the health of your download solution by Golden signometrics these are metrics that were developed by Google's sres to
- 1:06
monitor microservice applications since we have a microservice application it makes sense to include those we also have key metrics that are specific to demo like the comma the transactions of the participant metered events you would include infrastructure metrics like thread pool utilization or Java garbage collection time now all in all there are hundreds of metrics that are gathered and depending
- 1:30
on what you're trying to do you may want to slice and dice them and customize the data to show it as you want so we allow you to filter an aggregate metrics using labels that is what is in demo 2.60a right now but it can be hard to understand what you need to Monitor and so we've created the demo platform observability example so that you can learn how to monitor a demo solution to understand what is
- 2:02
important this observability example it uses Prometheus and grafana which are the best to breed open source monitoring tools it's self-contained so it's very easy for you to explore and then the next slide I'll show you there's just a handful of steps you need to follow it provides a request generation scripts to generate successful and air traffic it includes the containers that are
- 2:27
started so that you can generate the metrics and it has several example dashboards so you can see how to use those metrics in a very effective way the goal of this is not for you to deploy them production but to use it as a reference to develop your own production monitoring system you can use the grafana dashboards those those are production quality but this is again just for you to use an example and it is open source so the quick start for this observative
- 2:57
example is you just clone the git repo you allocate enough resources to run the example containers you start those containers locally using the docker compose file you open up three Terminals and you will run a request generation script in each of those terminals to generate some requests and then you just simply log into the on a dashboard and explore just the quick tip is you want to set the time range to the small unit and the refresh to be
- 3:28
quick to see the results quickly so let's just take an example DQ this is what we call the network operations center Health dashboard and it's intended to be an at a glass view of the health of your system you can see here we have the transactions that are successful and we have transactions that are rejected we see the participant received event rates in the events themselves that the participants has and we see The Ledger metered events of the participant
- 4:01
as well down here a little further you can see your grpc request rate the return codes and we see down here we actually have some failed grpc robust the latency how slow the request or faster requests are similarly for HTTP you have the input rate you have the status codes you have the latency and then you get into something that helps you to drill down to what's really important we have the rejected transactions and you can drill into what those rejected
- 4:34
transactions are at a given time you have the grpc errors for the top five endpoints and you have the HTTP errors through the top five queries we also have here the health status green means it's healthy and active and some garbage collecting statistics but if I want to drill down I can use this for example at the grpc endpoints we'll just change the time scale maybe the last 30 minutes you see here that I can specify a component of the domain or the
- 5:05
participant we're looking at the Domain let's change the participant and I know that I might be having some challenges with one of these services the user Management Services and voila you see we have the latency of the request the request is started the request is finished but most importantly there are some errors you see here that we try to create a user that already existed and we have other errors related these are
- 5:34
errors on purpose just for illustration and the average request. payload size and throughput similarly for the HTTP endpoint we have similar data and you can specify the app I only have four HP requests that are going here for Simplicity we have a health which shows you whether it was inactive or active this is over the last three hours I've only been active roughly for about the last hour
- 6:10
we have JDM metrics like the garbage collection statistics we have the number of garbage Collections and the timing the latency associated with the garbage collection we have um the number of in-flight dirty requests this is important because this is the metric that's used as to prevent the denial of service by having such a high input rate here we have the actual input rate and here we
- 6:44
have the maximum input rate so you'd be able to visually see I hit the the maximum rate therefore I'm being throttle you could generate a notification from that as well and then just going down a little bit more we have the um participant received events these are the events that relate to transactions or uploading at dark creating a user again you have different filters you can apply in terms of the menus we also have the
- 7:19
participant immediate events these would be the events on The Ledger and drilling down a little bit more we have some executor threads these would be Diagnostics that are helpful to our developers if you want to understand the cueiness going on in the events so with that I just wanted to say we'd like you to have a try at this enjoy let us know your feedback and thank you very much