DZone
Thanks for visiting DZone today,
Edit Profile
  • Manage Email Subscriptions
  • How to Post to DZone
  • Article Submission Guidelines
Sign Out View Profile
  • Post an Article
  • Manage My Drafts
Over 2 million developers have joined DZone.
Log In / Join
Refcards Trend Reports
Events Video Library
Refcards
Trend Reports

Events

View Events Video Library

Related

  • Good Data, Bad Metric: A Mutation Testing Pattern for Analytics Engineering
  • Quality Assurance in AI-Driven Business Evolution
  • The New Testing Pattern: Standardizing Regression for Cloud Migrations
  • From Test Automation to Autonomous Quality: Designing AI Agents for Data Validation at Scale

Trending

  • Implementing Observability in Distributed Systems Using OpenTelemetry
  • Compliance Automated Standard Solution (COMPASS), Part 10: How OSCAL Mapping Paves the Way for Continuous Compliance Scalability
  • Detecting Plan Regression in SQL Server Using Query Store
  • Migrate a Hardcoded LangGraph Agent to LaunchDarkly AI Configs in 20 Minutes
  1. DZone
  2. Data Engineering
  3. Data
  4. Testing Zabbix Trigger Expressions

Testing Zabbix Trigger Expressions

By 
Jakub Holý user avatar
Jakub Holý
·
Jul. 11, 12 · Interview
Likes (0)
Comment
Save
Tweet
Share
12.0K Views

Join the DZone community and get the full member experience.

Join For Free

When defining a Zabbix (1.8.2) trigger e.g. to inform you that there are errors in a log file, how do you verify that it is correct? As somebody recommended in a forum, you can use a Calculated Item with a similar expression (the syntax is little different from triggers). Contrary to triggers, the value of a calculated item is easy to see and the historical values are stored so you can check how it evolved. If your trigger expression is complex the you can create multiple calculated items, one for each subexpression.

Example

If we have a log item that sends us data whenever the text “ERROR” appears in a log line and the corresponding trigger expected to fire if we have got any data from the item in the last 600 sec (nodata() returns 1 if there indeed was no data):

{hive.example.com:log["/tmp/ada/hive.log","ERROR",,20].nodata(600)}=0

Then we could test it with a calculated item with the expression

nodata("hive.example.com:log[\"/tmp/ada/hive.log\",\"ERROR\",,20]", 600)

(Notice that the function comes first, taking the host:item as its 0th parameter and that this is enclosed with “”, escaping any nested ” with \.)

The value of the calculated item will be re-checked every <update interval> (independent on whether the source item changed or not) and stored, in this case it will either thave the value of 0 or 1. We can also construct more complex expressions with &, + etc. similarly to trigger expressions.

Data (computing) Testing Inform Syntax (programming languages) Construct (game engine)

Published at DZone with permission of Jakub Holý. See the original article here.

Opinions expressed by DZone contributors are their own.

Related

  • Good Data, Bad Metric: A Mutation Testing Pattern for Analytics Engineering
  • Quality Assurance in AI-Driven Business Evolution
  • The New Testing Pattern: Standardizing Regression for Cloud Migrations
  • From Test Automation to Autonomous Quality: Designing AI Agents for Data Validation at Scale

Partner Resources

×

Comments

The likes didn't load as expected. Please refresh the page and try again.

  • RSS
  • X
  • Facebook

ABOUT US

  • About DZone
  • Support and feedback
  • Community research

ADVERTISE

  • Advertise with DZone

CONTRIBUTE ON DZONE

  • Article Submission Guidelines
  • Become a Contributor
  • Core Program
  • Visit the Writers' Zone

LEGAL

  • Terms of Service
  • Privacy Policy

CONTACT US

  • 3343 Perimeter Hill Drive
  • Suite 215
  • Nashville, TN 37211
  • [email protected]

Let's be friends:

  • RSS
  • X
  • Facebook