Monitor Me

Monitor a cameras CPU load, total video bandwidth output, ACAP plug-in status and long-time image degeneration.

Monitor Me screenshot

Monitor Me screenshot

Overview:

CPU:

Displays the last 24 hours CPU load.  The values corresponds to the Linux loadavg 15 min (x100).  This value is just an indication.  A rule of thumb is the the value should below 250 but a value above does not mean that the camera is overloaded.  If the values goes over 300 you may want to investigate.

A good way to use this graph is to see how the camera load changes in different circumstances e.g. before/after installing a video analytics plug-in. Monitor Me does not affect the cameras load (measurable amount).

Monitor Me generate an event if the CPU load is higher than the threshold. The event may be used to trigger acctions rules such as administrator notification.

Bandwidth:

The bandwidth monitoring is a great tool to see how the video bandwidth changes in different light conditions during a day.

The total bandwidth output is sampled every minute. Bandwidth monitoring works best with continuous streaming. When recording video to an Edge Storage NAS is used the graph show huge spikes as the camera transfers files that causes network bursts.

Monitor Me generate an event if the bandwidth output is higher than the threshold. The event may be used to trigger acctions rules such as administrator notification.

ACAP:

Monitors the status of other ACAP plug-ins. The status is samples every 30 minutes and generates the following events:

* Plug-in installed
* Plug-in removed
* Plug-in started
* Plug-in stopped
* Plug-in changed (any of the above)

Note: In order to monitor ACAP plug-in Monitor Me needs the administrator password. It uses this password to create a new administrator user. It is recommended to remove this user when Monitor Me is uninstalled from the camera

Image:

By comparing a recent image with a reference image it may be possible to visually detect image degeneration such as dirt/dust, image re-configuration and camera direction.

Monitor Me takes one image at noon and one at midnight in order to compare images in similar light conditions. Come back to monitor me after 24 hours to update the reference to the last image capture.

Features:

  • Produces events for administrator notification
  • Visual graphs/images
  • Export samples to CVS-files
  • Low CPU consumption

Requirements:

  • Axis Camera model based on ARTPEC 4/5 (MIPS) & AMBARELLA (ARM)
  • Camera firmware 5.50 or later

Download

Advertisements

4 comments

  1. are there any updates to show processor usage, free memory, number of streams being pulled etc? e.g. looking for complete diagnostics?

    Like

    1. I have no plans to update Monitor Me. However, automated monitoring and maintenance on a system level is something that interests me. Monitor Me may work as a simple system tool for a low camera count installation (< 5 cameras). With more cameras you need some tool that collects, processes and displays this data. An ACAP could help collecting the data.

      What is the driver behind your request? Performance monitoring, optimization or troubleshooting?

      Note that some of the data such as CPU, processor usage and memory can be very hard to interpret. Yes, you can probably find services gone wild but i would think it would be hard to use the data to optimize the performance for a specific scenario.

      Like

  2. unsuccessful install on P1435-LE running 6.50.1

    tried loading Monitor_Me_2_0_armv6.eap

    2017-04-04T18:57:59.504+00:00 axis-accc8e72ca07 [ INFO ] upload.cgi: Uploaded ‘/tmp/Monitor_Me_2_0_armv6.eap’ size:86334
    2017-04-04T18:57:59.970+00:00 axis-accc8e72ca07 [ WARNING ] upload.cgi: ldd: /tmp/pack.yw8mQm/monitorme: error while loading shared libraries: /tmp/pack.yw8mQm/monitorme: cannot open shared object file: No such file or directory#012ldd: /tmp/pack.yw8mQm/monitorme: error while loading shared libraries: /tmp/pack.yw8mQm/monitorme: cannot open shared object file: No such file or directory#012sh: argument expected#012Error: “/tmp/pack.yw8mQm/monitorme” has the wrong type; it’s#012 an executable file for unsupported architecture, e_machine=0#012 (expected:)#012 an executable file for MIPS (MIPS R3000 big-endian)

    tried loading Monitor_Me_2_0_mipsisa32r2el.eap

    2017-04-04T18:58:39.349+00:00 axis-accc8e72ca07 [ INFO ] upload.cgi: Uploaded ‘/tmp/Monitor_Me_2_0_mipsisa32r2el.eap’ size:89908
    2017-04-04T18:58:39.903+00:00 axis-accc8e72ca07 [ WARNING ] upload.cgi: ldd: /tmp/pack.RIa0Jd/monitorme: error while loading shared libraries: libcurl.so.5: cannot open shared object file: No such file or directory#012ldd: linux-vdso.so.1 (0x77d42000)#012 libparam.so.1 => /usr/lib/libparam.so.1 (0x77d25000)#012 libnet_http.so.0 => /usr/lib/libnet_http.so.0 (0x77d10000)#012 libevent.so.0 => /usr/lib/libevent.so.0 (0x77cfc000)#012 libm.so.6 => /lib/libm.so.6 (0x77c14000)#012 libcapture.so.0 => /usr/lib/libcapture.so.0 (0x77bff000)#012 libcurl.so.5 => not found#012 libdl.so.2 => /lib/libdl.so.2 (0x77beb000)#012 libc.so.6 => /lib/libc.so.6 (0x77a7c000)#012 libdbus-glib-1.so.2 => /usr/lib/libdbus-glib-1.so.2 (0x77a4c000)#012 libgobject-2.0.so.0 => /usr/lib/libgobject-2.0.so.0 (0x779e7000)#012 libglib-utils.so => /usr/lib/libglib-utils.so (0x779cd000)#012 libglib-2.0.so.0 => /usr/lib/libglib-2.0.so.0 (0x778bb000)#012 libparhand.so => /usr/lib/libparhand.so (0x77891000)#012 libpthread.so.0 => /lib/libpthread.so.0 (0x77865000)#012 libfdipc.so => /usr/lib/libfdipc.so (0x77853000)#012 libevent2.so => /usr/lib/libevent2.so (0x7781a000)#012 libgio-2.0.so.0 => /usr/lib/libgio-2.0.so.0 (0x7767d000)#012 libresolution.so => /usr/lib/libresolution.so (0x77666000)#012 /lib/ld.so.1 (0x55a4f000)#012 libdbus-1.so.3 => /usr/lib/libdbus-1.so.3 (0x7760c000)#012 libsystemd.so.0 => /lib/libsystemd.so.0 (0x7757f000)#012 librt.so.1 => /lib/librt.so.1 (0x77567000)#012 libresolv.so.2 => /lib/libresolv.so.2 (0x77540000)#012 libcap.so.2 => /lib/libcap.so.2 (0x7752c000)#012 libffi.so.6 => /usr/lib/libffi.so.6 (0x77515000)#012 libpcre.so.1 => /usr/lib/libpcre.so.1 (0x774c2000)#012 libnsl.so.1 => /lib/libnsl.so.1 (0x77499000)#012 libxmlnode.so => /usr/lib/libxmlnode.so (0x77485000)#012 libgmodule-2.0.so.0 => /usr/lib/libgmodule-2.0.so.0 (0x77472000)#012 libz.so.1 => /lib/libz.so.1 (0x7744e000)#012 libstd2parser.so => /usr/lib/libstd2parser.so (0x7743b000)#012 libstatuscache.so => /usr/lib/libstatuscache.so (0x77428000)#012 libbootblock.so => /usr/lib/libbootblock.so (0x77415000)#012 libgcc_s.so.1 => /lib/libgcc_s.so.1 (0x773d9000)#012 libexpat.so.1 => /usr/lib/libexpat.so.1 (0x7739f000)#012 libfwinfo.so => /lib/libfwinfo.so (0x7738d000)#012 libubihelper.so => /usr/lib/libubihelper.so (0x77379000)#012Error: “/tmp/pack.RIa0Jd/monitorme” is of the right type, but is missing libraries:#012ldd: /lib/ld.so.1 returned with exit code (1)#012ldd: #012ldd: /tmp/pack.RIa0Jd/monitorme: error while loading shared libraries: libcurl.so.5: cannot open shared object file: No such file or directory#012ldd: linux-vdso.so.1 (0x77d5d000)#012 libparam.so.1 => /usr/lib/libparam.so.1 (0x77d40000)#012 libnet_http.so.0 => /usr/lib/libnet_http.so.0 (0x77d2b000)#012 libevent.so.0 => /usr/lib/libevent.so.0 (0x77d17000)#012 libm.so.6 => /lib/libm.so.6 (0x77c2f000)#012 libcapture.so.0 => /usr/lib/libcapture.so.0 (0x77c1a000)#012 libcurl.so.5 => not found#012 libdl.so.2 => /lib/libdl.so.2 (0x77c06000)#012 libc.so.6 => /lib/libc.so.6 (0x77a97000)#012 libdbus-glib-1.so.2 => /usr/lib/libdbus-glib-1.so.2 (0x77a67000)#012 libgobject-2.0.so.0 => /usr/lib/libgobject-2.0.so.0 (0x77a02000)#012 libglib-utils.so => /usr/lib/libglib-utils.so (0x779e8000)#012 libglib-2.0.so.0 => /usr/lib/libglib-2.0.so.0 (0x778d6000)#012 libparhand.so => /usr/lib/libparhand.so (0x778ac000)#012 libpthread.so.0 => /lib/libpthread.so.0 (0x77880000)#012 libfdipc.so => /usr/lib/libfdipc.so (0x7786e000)#012 libevent2.so => /usr/lib/libevent2.so (0x77835000)#012 libgio-2.0.so.0 => /usr/lib/libgio-2.0.so.0 (0x77698000)#012 libresolution.so => /usr/lib/libresolution.so (0x77681000)#012 /lib/ld.so.1 (0x55f98000)#012 libdbus-1.so.3 => /usr/lib/libdbus-1.so.3 (0x77627000)#012 libsystemd.so.0 => /lib/libsystemd.so.0 (0x7759a000)#012 librt.so.1 => /lib/librt.so.1 (0x77582000)#012 libresolv.so.2 => /lib/libresolv.so.2 (0x7755b000)#012 libcap.so.2 => /lib/libcap.so.2 (0x77547000)#012 libffi.so.6 => /usr/lib/libffi.so.6 (0x77530000)#012 libpcre.so.1 => /usr/lib/libpcre.so.1 (0x774dd000)#012 libnsl.so.1 => /lib/libnsl.so.1 (0x774b4000)#012 libxmlnode.so => /usr/lib/libxmlnode.so (0x774a0000)#012 libgmodule-2.0.so.0 => /usr/lib/libgmodule-2.0.so.0 (0x7748d000)#012 libz.so.1 => /lib/libz.so.1 (0x77469000)#012 libstd2parser.so => /usr/lib/libstd2parser.so (0x77456000)#012 libstatuscache.so => /usr/lib/libstatuscache.so (0x77443000)#012 libbootblock.so => /usr/lib/libbootblock.so (0x77430000)#012 libgcc_s.so.1 => /lib/libgcc_s.so.1 (0x773f4000)#012 libexpat.so.1 => /usr/lib/libexpat.so.1 (0x773ba000)#012 libfwinfo.so => /lib/libfwinfo.so (0x773a8000)#012 libubihelper.so => /usr/lib/libubihelper.so (0x77394000)

    see anything obvious in the log?

    Like

    1. Yes, I do see the problem. P1435 is based on MIPS so Monitor_Me_2_0_mipsisa32r2el.eap is the correct file to use. From the log I see that the FW uses a different library for curl than Monitor Me is compiled for. Other camera models do not seem to have this problem. Sorry, Monitor Me is currently not supported for P1435 due to this issue.
      I do not think I will have the time to recompile my ACAP for this specific model. Sorry. I will get back to you if I do get time.

      Like

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s