# How can be runtime monitoring be done on Node Red?

**URL:** <https://discourse.nodered.org/t/how-can-be-runtime-monitoring-be-done-on-node-red/26209>\
**Category:** General\
**Created:** [7 May 2020 05:20 UTC](https://discourse.nodered.org/t/how-can-be-runtime-monitoring-be-done-on-node-red/26209 "2020-05-07T05:20:42Z")\
**Posts on this page:** 16\
**Page:** 1

<div class="post-metadata">

**Author:** ![red\_arrowhead](https://avatars.discourse-cdn.com/v4/letter/r/74df32/32.png) [@red\_arrowhead](https://discourse.nodered.org/u/red_arrowhead)\
**Post date:** [7 May 2020 05:20 UTC](https://discourse.nodered.org/t/how-can-be-runtime-monitoring-be-done-on-node-red/26209/1 "2020-05-07T05:20:42Z")

</div>

I have multiple workflows created in the Node-Red window. But how can the execution of multiple workflows be monitored? That is runtime monitoring? Currently while developing I can check to go to each workflow separately and testing in debug window. But when I have hundreds of workflows running how can I monitor them together in runtime? Is it possible? If yes please let me know. Thanks.

---

<div class="post-metadata">

**Author:** ![kuema](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/kuema/32/6542_2.png) [@kuema](https://discourse.nodered.org/u/kuema)\
**Post date:** [7 May 2020 05:30 UTC](https://discourse.nodered.org/t/how-can-be-runtime-monitoring-be-done-on-node-red/26209/2 "2020-05-07T05:30:21Z")

</div>

What exactly do you want to monitor?

You could integrate simple runtime monitoring into each flow which records things like last execution time, last message, etc..., and manage this data in the global context. You would need some unique flow id for each monitoring location though. I would pack that logic into a reusable subflow.

For visualization of that data the [Node-RED Dashboard](https://flows.nodered.org/node/node-red-dashboard) can come in handy.

---

<div class="post-metadata">

**Author:** ![red\_arrowhead](https://avatars.discourse-cdn.com/v4/letter/r/74df32/32.png) [@red\_arrowhead](https://discourse.nodered.org/u/red_arrowhead)\
**Post date:** [7 May 2020 05:34 UTC](https://discourse.nodered.org/t/how-can-be-runtime-monitoring-be-done-on-node-red/26209/3 "2020-05-07T05:34:19Z")

</div>

I am a beginner to Node Red. I am creating some workflows. After that if I need to monitor each of those workflows at the same time. How should I proceed? How can I know the last execution time, last message, last process etc for all the workflows at the same interface and same time? How can I develop this?

> [@kuema](#):
>
> You would need some unique flow id for each monitoring location though. I would pack that logic into a reusable subflow.

How can I have unique Id for that? Can you explain the whole process to me? It will be really helpful

---

<div class="post-metadata">

**Author:** ![kuema](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/kuema/32/6542_2.png) [@kuema](https://discourse.nodered.org/u/kuema)\
**Post date:** [7 May 2020 05:48 UTC](https://discourse.nodered.org/t/how-can-be-runtime-monitoring-be-done-on-node-red/26209/4 "2020-05-07T05:48:35Z")

</div>

> [@red\_arrowhead](#):
>
> How can I know the last execution time, last message, last process etc for all the workflows at the same interface and same time? How can I develop this?

That's what you have to put in your "monitoring" subflow. What _exactly_ do you want to monitor? How are your flows triggered?

E.g. the "workflow id" could be automatically determined by message properties (like the `msg.topic`) or set manually to a fixed value.

Without any details about your flows or what you try to monitor, all I can do is making general suggestions. 🙂

---

<div class="post-metadata">

**Author:** ![red\_arrowhead](https://avatars.discourse-cdn.com/v4/letter/r/74df32/32.png) [@red\_arrowhead](https://discourse.nodered.org/u/red_arrowhead)\
**Post date:** [7 May 2020 05:56 UTC](https://discourse.nodered.org/t/how-can-be-runtime-monitoring-be-done-on-node-red/26209/5 "2020-05-07T05:56:13Z")

</div>

Okay. Currently I have created some work flows as shown here-

 ![image](https://us1.discourse-cdn.com/flex026/uploads/nodered/original/3X/a/a/aa394a8b149783c48e305dd4898ca4bffd68a220.png)  
As you can see here, There are many workflows in the top bar. And I have opened CSV\_SQL work flow. So my question is currently, I need to go to each work flow to check it is working properly, what data it is sending, at what time it has performed any action, are there any errors etc. So, what I want to try is to handle everything of these for all the work flows at a same interface and not by going to each tab separately. This is because, if after some time there are like hundreds of work flows in my NODE RED, it will be very difficult and time consuming to check each flow by clicking on its tab. Thats what I want to say, is how can I monitor these all workflows at the same time, to check which workflow is performing any action, are there any errors, what outputs are being sent for all of them? Did I make it clear about my problem? Please let me know how to proceed.

---

<div class="post-metadata">

**Author:** ![kuema](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/kuema/32/6542_2.png) [@kuema](https://discourse.nodered.org/u/kuema)\
**Post date:** [7 May 2020 06:05 UTC](https://discourse.nodered.org/t/how-can-be-runtime-monitoring-be-done-on-node-red/26209/6 "2020-05-07T06:05:28Z")

</div>

So basically, you need some kind of logging mechanism?

There is no general solution for that. In some past projects I have used `file` nodes and `catch` nodes to log some basic messages and errors into a log file.

---

<div class="post-metadata">

**Author:** ![red\_arrowhead](https://avatars.discourse-cdn.com/v4/letter/r/74df32/32.png) [@red\_arrowhead](https://discourse.nodered.org/u/red_arrowhead)\
**Post date:** [7 May 2020 06:09 UTC](https://discourse.nodered.org/t/how-can-be-runtime-monitoring-be-done-on-node-red/26209/7 "2020-05-07T06:09:02Z")

</div>

So I cannot monitor all the workflows on some same platform at the same time?

---

<div class="post-metadata">

**Author:** ![kuema](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/kuema/32/6542_2.png) [@kuema](https://discourse.nodered.org/u/kuema)\
**Post date:** [7 May 2020 06:16 UTC](https://discourse.nodered.org/t/how-can-be-runtime-monitoring-be-done-on-node-red/26209/8 "2020-05-07T06:16:57Z")

</div>

Nothing that the Node-RED runtime itself provides out-of-the-box. Apart from more verbose runtime logging and metrics, but that wouldn't help you in this case, I think. It's more for debugging general problems, not logging on _user application_ levels 🤔  
You can play with those settings, of course: [https://nodered.org/docs/user-guide/runtime/logging](https://nodered.org/docs/user-guide/runtime/logging)

For _user application_ logging, you'd have to build that into your flows, although you can reduce the effort it takes by making clever use of subflows.

---

<div class="post-metadata">

**Author:** ![dceejay](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/dceejay/32/38_2.png) [@dceejay](https://discourse.nodered.org/u/dceejay)\
**Post date:** [7 May 2020 06:39 UTC](https://discourse.nodered.org/t/how-can-be-runtime-monitoring-be-done-on-node-red/26209/9 "2020-05-07T06:39:09Z")

</div>

Debug nodes can all write to the one debug window on the right and also to the system log if set to do so. You can then filter either of those.

---

<div class="post-metadata">

**Author:** ![red\_arrowhead](https://avatars.discourse-cdn.com/v4/letter/r/74df32/32.png) [@red\_arrowhead](https://discourse.nodered.org/u/red_arrowhead)\
**Post date:** [7 May 2020 06:43 UTC](https://discourse.nodered.org/t/how-can-be-runtime-monitoring-be-done-on-node-red/26209/10 "2020-05-07T06:43:56Z")

</div>

How to send them to the system log and how can I filer those? Can you give a brief idea?

---

<div class="post-metadata">

**Author:** ![kuema](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/kuema/32/6542_2.png) [@kuema](https://discourse.nodered.org/u/kuema)\
**Post date:** [7 May 2020 07:11 UTC](https://discourse.nodered.org/t/how-can-be-runtime-monitoring-be-done-on-node-red/26209/11 "2020-05-07T07:11:53Z")

</div>

My assumption was _not_ to use the system log for application related logging.  
But using the debug node is valid, of course.  
To see the output you have to enable "system console" in each debug node. Where that output is actually logged depends on how you start Node-RED. E.g. with systemd you can use the journalctl command.

---

<div class="post-metadata">

**Author:** ![JGKK](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/jgkk/32/18515_2.png) [@JGKK](https://discourse.nodered.org/u/JGKK)\
**Post date:** [7 May 2020 07:31 UTC](https://discourse.nodered.org/t/how-can-be-runtime-monitoring-be-done-on-node-red/26209/12 "2020-05-07T07:31:09Z")

</div>

Hello,  
You can use [https://flows.nodered.org/node/node-red-contrib-flogger](https://flows.nodered.org/node/node-red-contrib-flogger)  
instead of a debug node. It gives you the possibility to write all the things to a seperate log file of your own

---

<div class="post-metadata">

**Author:** ![Steve-Mcl](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/steve-mcl/32/4826_2.png) [@Steve-Mcl](https://discourse.nodered.org/u/Steve-Mcl)\
**Post date:** [7 May 2020 07:31 UTC](https://discourse.nodered.org/t/how-can-be-runtime-monitoring-be-done-on-node-red/26209/13 "2020-05-07T07:31:59Z")

</div>

In a project where I needed a log of operations, I used the fantastic [node-red-contrib-flogger](https://flows.nodered.org/node/node-red-contrib-flogger) node

---

<div class="post-metadata">

**Author:** ![Steve-Mcl](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/steve-mcl/32/4826_2.png) [@Steve-Mcl](https://discourse.nodered.org/u/Steve-Mcl)\
**Post date:** [7 May 2020 07:32 UTC](https://discourse.nodered.org/t/how-can-be-runtime-monitoring-be-done-on-node-red/26209/14 "2020-05-07T07:32:31Z")

</div>

Snap haha 👍

---

<div class="post-metadata">

**Author:** ![JGKK](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/jgkk/32/18515_2.png) [@JGKK](https://discourse.nodered.org/u/JGKK)\
**Post date:** [7 May 2020 07:35 UTC](https://discourse.nodered.org/t/how-can-be-runtime-monitoring-be-done-on-node-red/26209/15 "2020-05-07T07:35:27Z")

</div>

i think i first heard of it from you @Steve-Mcl in a thread a while back. Have been using it ever since if i need some long term persistent logging 😃

---

<div class="post-metadata">

**Author:** ![system](https://us1.discourse-cdn.com/flex026/uploads/nodered/original/1X/d073cd938eafa2e558d7c2cd59003b3ef4963033.png) [@system](https://discourse.nodered.org/u/system)\
**Post date:** [6 July 2020 07:35 UTC](https://discourse.nodered.org/t/how-can-be-runtime-monitoring-be-done-on-node-red/26209/16 "2020-07-06T07:35:32Z")

</div>

This topic was automatically closed 60 days after the last reply. New replies are no longer allowed.
