Skip to content

nifi: add dashboard, monitors, log pipeline, and other assets#24561

Open
steveny91 wants to merge 12 commits into
masterfrom
update-nifi-assets
Open

nifi: add dashboard, monitors, log pipeline, and other assets#24561
steveny91 wants to merge 12 commits into
masterfrom
update-nifi-assets

Conversation

@steveny91

Copy link
Copy Markdown
Contributor

Summary

Adds the Datadog assets for the NiFi Agent check (already implemented and released as v1.0.0 in #23110) — this PR ships no check code changes, only assets that were pending from the original implementation:

  • Added log collection for nifi-app.log, capturing startup, shutdown, error, and audit trail events (assets/logs/nifi.yaml + pipeline tests).
  • Added the NiFi Overview dashboard.
  • Added three recommended monitors: NiFi API unreachable, NiFi cluster degraded, and NiFi processors in an invalid state.
  • Added three Log Explorer saved views: NiFi Overview, NiFi error and warning, and NiFi audit trail.
  • Added two Cloud SIEM detection rules: repeated authentication or authorization failures, and unusual volume of flow configuration changes.
  • Added a dataflows.yaml declaring the metrics and logs dataflows.
  • README updated (Overview, new "Log collection" setup section, new "Logs" data-collected section) to document the new log stream.

metadata.csv was reviewed against the integration's RFC and left unchanged — the RFC lists nifi.system.jvm.uptime, but that metric is not actually emitted anywhere in the shipped check (check.py/constants.py/api.py), so it was not added to avoid documenting a metric that never reports data. Worth a follow-up with whoever owns the check to either implement it or update the RFC.

Known gap, out of scope for this PR: nifi/manifest.json does not exist in this repo despite pyproject.toml's sdist target listing it — this predates this PR and will need to be created separately before a Publishing Platform listing can be created.

A CHANGELOG fragment will follow in a separate commit on this branch once the PR number is available (this repo's nifi/CHANGELOG.md uses towncrier fragments under changelog.d/, not direct edits).

Test plan

  • ddev validate dashboards nifi
  • ddev validate metadata nifi (confirms unchanged metadata.csv still validates)
  • Confirm the log pipeline's grok pattern parses real nifi-app.log output (validated here against the RFC's documented log4j pattern and hand-traced samples; not run against a live NiFi instance)
  • Confirm monitors import cleanly via the Datadog UI/API

🤖 Generated with the integration-dev generate-assets / update-integration-repo skills, human-reviewed.

Adds the OOTB overview dashboard, three recommended monitors (API
unreachable, cluster degraded, processors in an invalid state), a
log pipeline for nifi-app.log (startup/shutdown/error/audit-trail
events), dataflows.yaml, three Log Explorer saved views, and two
Cloud SIEM detection rules for the already-released NiFi Agent
check. No check code changes.
Verified locally with `towncrier build --draft` that these render
as expected under a future 1.1.0 entry.

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: aae2928829

ℹ️ About Codex in GitHub

Codex has been enabled to automatically review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

When you sign up for Codex through ChatGPT, Codex can also answer questions or update the PR, like "@codex address that feedback".

{
"data_source": "metrics",
"name": "query1",
"query": "min:nifi.can_connect{$host,$nifi_version}",

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Drop the version filter from can_connect

When the NiFi API is unreachable, the check emits nifi.can_connect = 0 without the nifi_version tag because it cannot fetch /flow/about (check.py emits the failure metric with only instance tags). In dashboards filtered by nifi_version, this query excludes exactly those failure samples, so the availability widget can go blank or stay stale instead of turning red for a down API. Remove $nifi_version from the can_connect query or tag failures with a cached version.

Useful? React with 👍 / 👎.

Comment on lines +1 to +2
id: "nifi"
tests:

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Rename the parser fixture to use the test suffix

The logs pipeline test fixtures in this repo use the *_tests.yaml suffix, while this new file is the only *-pipeline-tests.yaml; tooling that discovers parser tests by the established suffix will not exercise these samples, and asset packaging can treat this as another logs asset instead of a fixture. Rename it to nifi_tests.yaml next to nifi.yaml so the NiFi parser samples are picked up.

Useful? React with 👍 / 👎.

@datadog-prod-us1-6

This comment has been minimized.

@domalessi domalessi self-assigned this Jul 15, 2026

@domalessi domalessi left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Left some minor editorial suggestions!

Comment thread nifi/assets/monitors/nifi_api_unreachable.json Outdated
Comment thread nifi/assets/monitors/nifi_cluster_degraded.json Outdated
Comment thread nifi/assets/monitors/processors_invalid_state.json Outdated
Comment thread nifi/assets/monitors/nifi_api_unreachable.json Outdated
Comment thread nifi/assets/monitors/nifi_cluster_degraded.json Outdated
Comment thread nifi/assets/monitors/processors_invalid_state.json Outdated
Comment thread nifi/README.md Outdated
Comment thread nifi/README.md Outdated
steveny91 and others added 10 commits July 17, 2026 15:48
Co-authored-by: domalessi <111786334+domalessi@users.noreply.github.com>
Co-authored-by: domalessi <111786334+domalessi@users.noreply.github.com>
Co-authored-by: domalessi <111786334+domalessi@users.noreply.github.com>
Co-authored-by: domalessi <111786334+domalessi@users.noreply.github.com>
Co-authored-by: domalessi <111786334+domalessi@users.noreply.github.com>
Co-authored-by: domalessi <111786334+domalessi@users.noreply.github.com>
Co-authored-by: domalessi <111786334+domalessi@users.noreply.github.com>
Co-authored-by: domalessi <111786334+domalessi@users.noreply.github.com>
@steveny91 steveny91 added the qa/skip-qa Automatically skip this PR for the next QA label Jul 17, 2026
@dd-octo-sts

dd-octo-sts Bot commented Jul 17, 2026

Copy link
Copy Markdown
Contributor

Validation Report

All 21 validations passed.

Show details
Validation Description Status
agent-reqs Verify check versions match the Agent requirements file
ci Validate CI configuration and code coverage settings
codeowners Validate every integration has a CODEOWNERS entry
config Validate default configuration files against spec.yaml
dep Verify dependency pins are consistent and Agent-compatible
http Validate integrations use the HTTP wrapper correctly
imports Validate check imports do not use deprecated modules
integration-style Validate check code style conventions
jmx-metrics Validate JMX metrics definition files and config
labeler Validate PR labeler config matches integration directories
legacy-signature Validate no integration uses the legacy Agent check signature
license-headers Validate Python files have proper license headers
licenses Validate third-party license attribution list
metadata Validate metadata.csv metric definitions
models Validate configuration data models match spec.yaml
openmetrics Validate OpenMetrics integrations disable the metric limit
package Validate Python package metadata and naming
qa-label Validate the pull request declares whether it needs QA for the next Agent release
readmes Validate README files have required sections
saved-views Validate saved view JSON file structure and fields
version Validate version consistency between package and changelog

View full run

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants