Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • Users
  • Groups
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Default (Flatly)
  • No Skin
Collapse
Brand Logo

NetXMS Forum

  1. Home
  2. Support
  3. Monitor heartbeat?

Monitor heartbeat?

Scheduled Pinned Locked Moved Support
3 Posts 2 Posters 30.7k Views
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • D
    D
    Dan
    wrote on last edited by
    #1

    Hi!

    I am trying to monitor if a DCI is not updated within a certain interval, like a heartbeat.
    If the "monitored" DCI is not updated within a scheduled interval, then it should create the alarm.

    I am thinking about using the data collection transformation for this, but I don't know if there is any built in function or any other way to check the date for the last update on a DCI?

    Is this the way to go or is there a better way to create such a heartbeat monitoring?

    Keep up the great work!

    Best regards,
    Dan

    1 Reply Last reply
    0
    • V
      V
      Victor Kirhenshtein
      wrote on last edited by
      #2

      Hi!

      You can create threshold on data collection error - it will fire if DCI not being updated due to communication failure or agent error - and then process event generated in this case as usual.

      If you need to monitor push DCI then you can create another DCI and use transformation script to monitor last poll time, status, or error count of first DCI. For example, if you have DCI for parameter "PushParameter", you could create second DCI with source "Internal" and parameter "Dummy" and use the following transformation script:

      sub main()
      {
        dci = GetDCIObject($node, FindDCIByName($node, "PushParameter"));
        return time() - dci->lastPollTime > 120;  // Replace 120 with required interval in seconds
      }

      And set threshold for value 1 - it will indicate that there were no new values for 120 seconds.

      Alternatively, you can return difference between current time and last poll time:

      return time() - dci->lastPollTime;

      and specify required interval in threshold.

      Best regards,
      Victor

      1 Reply Last reply
      0
      • D
        D
        Dan
        wrote on last edited by
        #3

        It was the push DCI that was my main concern, sorry for not saying so!

        This will probably solve the problem perfectly 🙂

        Thanks!

        Best regards,
        Dan

        1 Reply Last reply
        0

        Hello! It looks like you're interested in this conversation, but you don't have an account yet.

        Getting fed up of having to scroll through the same posts each visit? When you register for an account, you'll always come back to exactly where you were before, and choose to be notified of new replies (either via email, or push notification). You'll also be able to save bookmarks and upvote posts to show your appreciation to other community members.

        With your input, this post could be even better 💗

        Register Login
        Reply
        • Reply as topic
        Log in to reply
        • Oldest to Newest
        • Newest to Oldest
        • Most Votes


        • Login

        • Don't have an account? Register

        • Login or register to search.
        Powered by NodeBB Contributors
        • First post
          Last post
        0
        • Categories
        • Recent
        • Tags
        • Popular
        • Users
        • Groups