-
Notifications
You must be signed in to change notification settings - Fork 0
Show drop-down for bucket with filtering #16
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
WalkthroughReplaces buckets() templating with Flux-based, case-insensitive prefix filtering across three Grafana dashboards, adds a constant Changes
Sequence Diagram(s)sequenceDiagram
autonumber
actor User
participant Grafana
participant InfluxDB
User->>Grafana: Open dashboard
Grafana->>InfluxDB: Run Flux query\nimport "strings"\n|> buckets()\n|> filter(fn: (r) => strings.hasPrefix(v: strings.toLower(v: r.name), prefix: "${bucket_prefix}"))\n|> sort(columns: ["name"])
InfluxDB-->>Grafana: Return filtered, sorted buckets
Grafana-->>User: Render "Source Bucket" dropdown
User->>Grafana: Select bucket
Grafana->>InfluxDB: Execute panel queries using selected bucket
InfluxDB-->>Grafana: Query results
Grafana-->>User: Display panels
Estimated code review effort🎯 2 (Simple) | ⏱️ ~10 minutes Possibly related PRs
Suggested reviewers
✨ Finishing Touches🧪 Generate unit tests
🪧 TipsChatThere are 3 ways to chat with CodeRabbit:
SupportNeed help? Create a ticket on our support page for assistance with any issues or questions. CodeRabbit Commands (Invoked using PR/Issue comments)Type Other keywords and placeholders
Status, Documentation and Community
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Actionable comments posted: 3
📜 Review details
Configuration used: Path: .coderabbit.yaml
Review profile: CHILL
Plan: Pro
💡 Knowledge Base configuration:
- MCP integration is disabled by default for public repositories
- Jira integration is disabled by default for public repositories
- Linear integration is disabled by default for public repositories
You can enable these sources in your CodeRabbit configuration.
📒 Files selected for processing (3)
dashboard-deployments/system-monitoring-influxdb2-flux-grafana/provisioning/dashboards/device_details.json(1 hunks)dashboard-deployments/system-monitoring-influxdb2-flux-grafana/provisioning/dashboards/overview_of_devices.json(1 hunks)dashboard-deployments/system-monitoring-influxdb2-flux-grafana/provisioning/dashboards/system_overview.json(1 hunks)
🧰 Additional context used
📓 Path-based instructions (2)
dashboard-deployments/**
⚙️ CodeRabbit configuration file
This directory contains server-side dashboard examples for visualizing data from FixedIT Data Agent running on Axis devices. These are primarily for DevOps/IT professionals comfortable with deploying Grafana dashboards and InfluxDB servers. Some dashboards work directly with bundled agent configurations, others can be customized. Licensed under Elastic License 2.0. Review for deployment complexity, dashboard usability, and proper licensing compliance. We should make sure that dashboards are portable and does not check in specific host names, or refer to other specific data from a single deployment.
Files:
dashboard-deployments/system-monitoring-influxdb2-flux-grafana/provisioning/dashboards/overview_of_devices.jsondashboard-deployments/system-monitoring-influxdb2-flux-grafana/provisioning/dashboards/system_overview.jsondashboard-deployments/system-monitoring-influxdb2-flux-grafana/provisioning/dashboards/device_details.json
**/*
⚙️ CodeRabbit configuration file
This repository serves FixedIT Data Agent users across a spectrum from plug-and-play dashboard deployment to advanced edge device customization. Consider whether changes maintain accessibility for both DevOps professionals (server-side focus) and developers (edge customization focus). If new features are added or existing ones changed significantly, ensure documentation clearly explains the intended audience and usage level. We use prettier for formatting of common file formats like markdown, yaml, json, etc. Example projects should be placed in the repo-root in a directory named project-*/. Whenever referencing Axis device model names like "D4100-VE mk II" or "M3045", prefix it with "AXIS" in capital letters (e.g. "AXIS D4100-VE mk II"). When using Axis as a company name, use "Axis Communications", note that all-caps is only used when "AXIS" is used in their product names, not their company name. When using the name of an Axis product, google on the name to verify that it is correctly identified. Avoid using 'cameras' or 'Axis cameras' unless the solution in related to visual analytics, otherwise prefer using 'Axis devices' to show that the FixedIT Data Agent also works with strobes, speakers, door stations, etc. Images used for the README should be placed in a directory called .images/ in the affected project folder. These images might also be referred to from other sources like the top-level README.md file.
Files:
dashboard-deployments/system-monitoring-influxdb2-flux-grafana/provisioning/dashboards/overview_of_devices.jsondashboard-deployments/system-monitoring-influxdb2-flux-grafana/provisioning/dashboards/system_overview.jsondashboard-deployments/system-monitoring-influxdb2-flux-grafana/provisioning/dashboards/device_details.json
...oyments/system-monitoring-influxdb2-flux-grafana/provisioning/dashboards/device_details.json
Outdated
Show resolved
Hide resolved
...ts/system-monitoring-influxdb2-flux-grafana/provisioning/dashboards/overview_of_devices.json
Outdated
Show resolved
Hide resolved
...yments/system-monitoring-influxdb2-flux-grafana/provisioning/dashboards/system_overview.json
Outdated
Show resolved
Hide resolved
|
We need to ensure that the selected bucket is kept when navigating between devices with the links. |
d028f46 to
a8eaf30
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Actionable comments posted: 0
Caution
Some comments are outside the diff and can’t be posted inline due to platform limitations.
⚠️ Outside diff range comments (4)
dashboard-deployments/system-monitoring-influxdb2-flux-grafana/provisioning/dashboards/overview_of_devices.json (2)
91-94: Preserve selected bucket when navigating to Device Details (link 1).Add the
var-bucketparameter so the chosen bucket persists across dashboards.- "url": "/d/${device_details_uid:raw}/device-details?var-device=${__value.text}" + "url": "/d/${device_details_uid:raw}/device-details?var-device=${__value.text}&var-bucket=${bucket}"
415-418: Preserve selected bucket when navigating to Device Details (link 2).Same fix for the second link.
- "url": "/d/${device_details_uid:raw}/device-details?var-device=${__value.text}" + "url": "/d/${device_details_uid:raw}/device-details?var-device=${__value.text}&var-bucket=${bucket}"dashboard-deployments/system-monitoring-influxdb2-flux-grafana/provisioning/dashboards/system_overview.json (2)
186-193: Carry the selected bucket into Device Details link (Missing Devices table).- "url": "/d/${device_details_uid:raw}/device-details?var-device=${__value.text}&from=now-90d" + "url": "/d/${device_details_uid:raw}/device-details?var-device=${__value.text}&var-bucket=${bucket}&from=now-90d"
643-646: Carry the selected bucket into Device Details link (Outliers table).- "url": "/d/${device_details_uid:raw}/device-details?var-device=${__value.text}" + "url": "/d/${device_details_uid:raw}/device-details?var-device=${__value.text}&var-bucket=${bucket}"
♻️ Duplicate comments (3)
dashboard-deployments/system-monitoring-influxdb2-flux-grafana/provisioning/dashboards/overview_of_devices.json (1)
990-997: Make the prefix comparison truly case-insensitive.Lowercase the
${bucket_prefix}in the Flux filter to match the stated “case insensitive” behavior regardless of how users type the prefix.- "definition": "import \"strings\"\n\nbuckets()\n|> filter(fn: (r) => strings.hasPrefix(v: strings.toLower(v: r.name), prefix: \"${bucket_prefix}\"))\n|> sort(columns: [\"name\"])", + "definition": "import \"strings\"\n\nbuckets()\n|> filter(fn: (r) => strings.hasPrefix(v: strings.toLower(v: r.name), prefix: strings.toLower(v: \"${bucket_prefix}\")))\n|> sort(columns: [\"name\"])", ... - "query": "import \"strings\"\n\nbuckets()\n|> filter(fn: (r) => strings.hasPrefix(v: strings.toLower(v: r.name), prefix: \"${bucket_prefix}\"))\n|> sort(columns: [\"name\"])" + "query": "import \"strings\"\n\nbuckets()\n|> filter(fn: (r) => strings.hasPrefix(v: strings.toLower(v: r.name), prefix: strings.toLower(v: \"${bucket_prefix}\")))\n|> sort(columns: [\"name\"])"dashboard-deployments/system-monitoring-influxdb2-flux-grafana/provisioning/dashboards/system_overview.json (1)
894-901: Make the prefix comparison truly case-insensitive.Lowercase the
${bucket_prefix}so user input casing does not affect results.- "definition": "import \"strings\"\n\nbuckets()\n|> filter(fn: (r) => strings.hasPrefix(v: strings.toLower(v: r.name), prefix: \"${bucket_prefix}\"))\n|> sort(columns: [\"name\"])", + "definition": "import \"strings\"\n\nbuckets()\n|> filter(fn: (r) => strings.hasPrefix(v: strings.toLower(v: r.name), prefix: strings.toLower(v: \"${bucket_prefix}\")))\n|> sort(columns: [\"name\"])", ... - "query": "import \"strings\"\n\nbuckets()\n|> filter(fn: (r) => strings.hasPrefix(v: strings.toLower(v: r.name), prefix: \"${bucket_prefix}\"))\n|> sort(columns: [\"name\"])" + "query": "import \"strings\"\n\nbuckets()\n|> filter(fn: (r) => strings.hasPrefix(v: strings.toLower(v: r.name), prefix: strings.toLower(v: \"${bucket_prefix}\")))\n|> sort(columns: [\"name\"])"dashboard-deployments/system-monitoring-influxdb2-flux-grafana/provisioning/dashboards/device_details.json (1)
1059-1067: Make the prefix comparison truly case-insensitive.Apply the same lowercase to
${bucket_prefix}here for consistency.- "definition": "import \"strings\"\n\nbuckets()\n|> filter(fn: (r) => strings.hasPrefix(v: strings.toLower(v: r.name), prefix: \"${bucket_prefix}\"))\n|> sort(columns: [\"name\"])", + "definition": "import \"strings\"\n\nbuckets()\n|> filter(fn: (r) => strings.hasPrefix(v: strings.toLower(v: r.name), prefix: strings.toLower(v: \"${bucket_prefix}\")))\n|> sort(columns: [\"name\"])", ... - "query": "import \"strings\"\n\nbuckets()\n|> filter(fn: (r) => strings.hasPrefix(v: strings.toLower(v: r.name), prefix: \"${bucket_prefix}\"))\n|> sort(columns: [\"name\"])" + "query": "import \"strings\"\n\nbuckets()\n|> filter(fn: (r) => strings.hasPrefix(v: strings.toLower(v: r.name), prefix: strings.toLower(v: \"${bucket_prefix}\")))\n|> sort(columns: [\"name\"])"
🧹 Nitpick comments (3)
dashboard-deployments/system-monitoring-influxdb2-flux-grafana/provisioning/dashboards/overview_of_devices.json (1)
990-997: Optional: Emit only bucket names to the variable selector.Keeps the variable’s values clean and avoids accidental column leakage from buckets().
- |> sort(columns: ["name"]) + |> sort(columns: ["name"]) + |> keep(columns: ["name"]) + |> rename(columns: {name: "_value"})dashboard-deployments/system-monitoring-influxdb2-flux-grafana/provisioning/dashboards/system_overview.json (1)
894-901: Optional: Emit only bucket names to the variable selector.- |> sort(columns: ["name"]) + |> sort(columns: ["name"]) + |> keep(columns: ["name"]) + |> rename(columns: {name: "_value"})dashboard-deployments/system-monitoring-influxdb2-flux-grafana/provisioning/dashboards/device_details.json (1)
1059-1067: Optional: Emit only bucket names to the variable selector.- |> sort(columns: ["name"]) + |> sort(columns: ["name"]) + |> keep(columns: ["name"]) + |> rename(columns: {name: "_value"})
📜 Review details
Configuration used: Path: .coderabbit.yaml
Review profile: CHILL
Plan: Pro
💡 Knowledge Base configuration:
- MCP integration is disabled by default for public repositories
- Jira integration is disabled by default for public repositories
- Linear integration is disabled by default for public repositories
You can enable these sources in your CodeRabbit configuration.
📒 Files selected for processing (3)
dashboard-deployments/system-monitoring-influxdb2-flux-grafana/provisioning/dashboards/device_details.json(1 hunks)dashboard-deployments/system-monitoring-influxdb2-flux-grafana/provisioning/dashboards/overview_of_devices.json(1 hunks)dashboard-deployments/system-monitoring-influxdb2-flux-grafana/provisioning/dashboards/system_overview.json(1 hunks)
🧰 Additional context used
📓 Path-based instructions (2)
dashboard-deployments/**
⚙️ CodeRabbit configuration file
This directory contains server-side dashboard examples for visualizing data from FixedIT Data Agent running on Axis devices. These are primarily for DevOps/IT professionals comfortable with deploying Grafana dashboards and InfluxDB servers. Some dashboards work directly with bundled agent configurations, others can be customized. Licensed under Elastic License 2.0. Review for deployment complexity, dashboard usability, and proper licensing compliance. We should make sure that dashboards are portable and does not check in specific host names, or refer to other specific data from a single deployment.
Files:
dashboard-deployments/system-monitoring-influxdb2-flux-grafana/provisioning/dashboards/system_overview.jsondashboard-deployments/system-monitoring-influxdb2-flux-grafana/provisioning/dashboards/device_details.jsondashboard-deployments/system-monitoring-influxdb2-flux-grafana/provisioning/dashboards/overview_of_devices.json
**/*
⚙️ CodeRabbit configuration file
This repository serves FixedIT Data Agent users across a spectrum from plug-and-play dashboard deployment to advanced edge device customization. Consider whether changes maintain accessibility for both DevOps professionals (server-side focus) and developers (edge customization focus). If new features are added or existing ones changed significantly, ensure documentation clearly explains the intended audience and usage level. We use prettier for formatting of common file formats like markdown, yaml, json, etc. Example projects should be placed in the repo-root in a directory named project-*/. Whenever referencing Axis device model names like "D4100-VE mk II" or "M3045", prefix it with "AXIS" in capital letters (e.g. "AXIS D4100-VE mk II"). When using Axis as a company name, use "Axis Communications", note that all-caps is only used when "AXIS" is used in their product names, not their company name. When using the name of an Axis product, google on the name to verify that it is correctly identified. Avoid using 'cameras' or 'Axis cameras' unless the solution in related to visual analytics, otherwise prefer using 'Axis devices' to show that the FixedIT Data Agent also works with strobes, speakers, door stations, etc. Images used for the README should be placed in a directory called .images/ in the affected project folder. These images might also be referred to from other sources like the top-level README.md file.
Files:
dashboard-deployments/system-monitoring-influxdb2-flux-grafana/provisioning/dashboards/system_overview.jsondashboard-deployments/system-monitoring-influxdb2-flux-grafana/provisioning/dashboards/device_details.jsondashboard-deployments/system-monitoring-influxdb2-flux-grafana/provisioning/dashboards/overview_of_devices.json
- Update bucket variables in all three dashboards to filter buckets to only show those starting with 'Cameras' (case insensitive) and sort them alphabetically. - Show the variable as a drop down in the dashboards - Keep the bucket selection when clicking links This makes it possible to use multiple different buckets for segmentation of different data.
a8eaf30 to
6155fc6
Compare
Done |
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Actionable comments posted: 0
🧹 Nitpick comments (7)
dashboard-deployments/system-monitoring-influxdb2-flux-grafana/provisioning/dashboards/overview_of_devices.json (2)
973-984: Nit: hide-only constant should not sync to URL.Consider preventing bucket_prefix (hidden) from polluting URLs.
- "skipUrlSync": false, + "skipUrlSync": true,
990-997: Make prefix filter truly case-insensitive (and optionally more robust for Grafana variables).Currently you lowercase r.name but not the prefix; mixed-case prefix values won’t match.
Minimal fix (lowercase the prefix too):
- "definition": "import \"strings\"\n\nbuckets()\n|> filter(fn: (r) => strings.hasPrefix(v: strings.toLower(v: r.name), prefix: \"${bucket_prefix}\"))\n|> sort(columns: [\"name\"])", + "definition": "import \"strings\"\n\nbuckets()\n|> filter(fn: (r) => strings.hasPrefix(v: strings.toLower(v: r.name), prefix: strings.toLower(v: \"${bucket_prefix}\")))\n|> sort(columns: [\"name\"])", ... - "query": "import \"strings\"\n\nbuckets()\n|> filter(fn: (r) => strings.hasPrefix(v: strings.toLower(v: r.name), prefix: \"${bucket_prefix}\"))\n|> sort(columns: [\"name\"])" + "query": "import \"strings\"\n\nbuckets()\n|> filter(fn: (r) => strings.hasPrefix(v: strings.toLower(v: r.name), prefix: strings.toLower(v: \"${bucket_prefix}\")))\n|> sort(columns: [\"name\"])"Optional robustness (emit only name as _value which Grafana variable handling prefers):
- "definition": "import \"strings\"\n\nbuckets()\n|> filter(fn: (r) => strings.hasPrefix(v: strings.toLower(v: r.name), prefix: strings.toLower(v: \"${bucket_prefix}\")))\n|> sort(columns: [\"name\"])", + "definition": "import \"strings\"\n\nbuckets()\n|> filter(fn: (r) => strings.hasPrefix(v: strings.toLower(v: r.name), prefix: strings.toLower(v: \"${bucket_prefix}\")))\n|> sort(columns: [\"name\"])|> keep(columns: [\"name\"])|> rename(columns: {name: \"_value\"})", ... - "query": "import \"strings\"\n\nbuckets()\n|> filter(fn: (r) => strings.hasPrefix(v: strings.toLower(v: r.name), prefix: \"${bucket_prefix}\"))\n|> sort(columns: [\"name\"])" + "query": "import \"strings\"\n\nbuckets()\n|> filter(fn: (r) => strings.hasPrefix(v: strings.toLower(v: r.name), prefix: strings.toLower(v: \"${bucket_prefix}\")))\n|> sort(columns: [\"name\"])|> keep(columns: [\"name\"])|> rename(columns: {name: \"_value\"})"dashboard-deployments/system-monitoring-influxdb2-flux-grafana/provisioning/dashboards/device_details.json (2)
1046-1057: Nit: keep hidden constants out of URL.Set skipUrlSync to true for bucket_prefix.
- "skipUrlSync": false, + "skipUrlSync": true,
1059-1071: Ensure case-insensitive prefix works regardless of user input case.Lowercase the template value too; optionally emit _value for safer Grafana variable parsing.
Minimal:
- "definition": "import \"strings\"\n\nbuckets()\n|> filter(fn: (r) => strings.hasPrefix(v: strings.toLower(v: r.name), prefix: \"${bucket_prefix}\"))\n|> sort(columns: [\"name\"])", + "definition": "import \"strings\"\n\nbuckets()\n|> filter(fn: (r) => strings.hasPrefix(v: strings.toLower(v: r.name), prefix: strings.toLower(v: \"${bucket_prefix}\")))\n|> sort(columns: [\"name\"])", ... - "query": "import \"strings\"\n\nbuckets()\n|> filter(fn: (r) => strings.hasPrefix(v: strings.toLower(v: r.name), prefix: \"${bucket_prefix}\"))\n|> sort(columns: [\"name\"])" + "query": "import \"strings\"\n\nbuckets()\n|> filter(fn: (r) => strings.hasPrefix(v: strings.toLower(v: r.name), prefix: strings.toLower(v: \"${bucket_prefix}\")))\n|> sort(columns: [\"name\"])"Optional:
- "definition": "import \"strings\"\n\nbuckets()\n|> filter(fn: (r) => strings.hasPrefix(v: strings.toLower(v: r.name), prefix: strings.toLower(v: \"${bucket_prefix}\")))\n|> sort(columns: [\"name\"])", + "definition": "import \"strings\"\n\nbuckets()\n|> filter(fn: (r) => strings.hasPrefix(v: strings.toLower(v: r.name), prefix: strings.toLower(v: \"${bucket_prefix}\")))\n|> sort(columns: [\"name\"])|> keep(columns: [\"name\"])|> rename(columns: {name: \"_value\"})", ... - "query": "import \"strings\"\n\nbuckets()\n|> filter(fn: (r) => strings.hasPrefix(v: strings.toLower(v: r.name), prefix: strings.toLower(v: \"${bucket_prefix}\")))\n|> sort(columns: [\"name\"])" + "query": "import \"strings\"\n\nbuckets()\n|> filter(fn: (r) => strings.hasPrefix(v: strings.toLower(v: r.name), prefix: strings.toLower(v: \"${bucket_prefix}\")))\n|> sort(columns: [\"name\"])|> keep(columns: [\"name\"])|> rename(columns: {name: \"_value\"})"dashboard-deployments/system-monitoring-influxdb2-flux-grafana/provisioning/dashboards/system_overview.json (3)
876-887: Nit: don’t sync hidden constants.bucket_prefix is hidden; set skipUrlSync to true.
- "skipUrlSync": false, + "skipUrlSync": true,
894-901: Case-insensitive prefix and variable robustness.Lowercase the prefix input; optionally emit only _value for Grafana variable stability.
Minimal:
- "definition": "import \"strings\"\n\nbuckets()\n|> filter(fn: (r) => strings.hasPrefix(v: strings.toLower(v: r.name), prefix: \"${bucket_prefix}\"))\n|> sort(columns: [\"name\"])", + "definition": "import \"strings\"\n\nbuckets()\n|> filter(fn: (r) => strings.hasPrefix(v: strings.toLower(v: r.name), prefix: strings.toLower(v: \"${bucket_prefix}\")))\n|> sort(columns: [\"name\"])", ... - "query": "import \"strings\"\n\nbuckets()\n|> filter(fn: (r) => strings.hasPrefix(v: strings.toLower(v: r.name), prefix: \"${bucket_prefix}\"))\n|> sort(columns: [\"name\"])" + "query": "import \"strings\"\n\nbuckets()\n|> filter(fn: (r) => strings.hasPrefix(v: strings.toLower(v: r.name), prefix: strings.toLower(v: \"${bucket_prefix}\")))\n|> sort(columns: [\"name\"])"Optional:
- "definition": "import \"strings\"\n\nbuckets()\n|> filter(fn: (r) => strings.hasPrefix(v: strings.toLower(v: r.name), prefix: strings.toLower(v: \"${bucket_prefix}\")))\n|> sort(columns: [\"name\"])", + "definition": "import \"strings\"\n\nbuckets()\n|> filter(fn: (r) => strings.hasPrefix(v: strings.toLower(v: r.name), prefix: strings.toLower(v: \"${bucket_prefix}\")))\n|> sort(columns: [\"name\"])|> keep(columns: [\"name\"])|> rename(columns: {name: \"_value\"})", ... - "query": "import \"strings\"\n\nbuckets()\n|> filter(fn: (r) => strings.hasPrefix(v: strings.toLower(v: r.name), prefix: strings.toLower(v: \"${bucket_prefix}\")))\n|> sort(columns: [\"name\"])" + "query": "import \"strings\"\n\nbuckets()\n|> filter(fn: (r) => strings.hasPrefix(v: strings.toLower(v: r.name), prefix: strings.toLower(v: \"${bucket_prefix}\")))\n|> sort(columns: [\"name\"])|> keep(columns: [\"name\"])|> rename(columns: {name: \"_value\"})"
188-189: Good: bucket context added to navigation links (minor title consistency nit).Including var-bucket preserves selection across dashboards. Minor nit: link titles vary (“Device detail link”, “Device details link”, “Device Detail Link”). Consider standardizing.
Also applies to: 443-446, 645-646
📜 Review details
Configuration used: Path: .coderabbit.yaml
Review profile: CHILL
Plan: Pro
💡 Knowledge Base configuration:
- MCP integration is disabled by default for public repositories
- Jira integration is disabled by default for public repositories
- Linear integration is disabled by default for public repositories
You can enable these sources in your CodeRabbit configuration.
📒 Files selected for processing (3)
dashboard-deployments/system-monitoring-influxdb2-flux-grafana/provisioning/dashboards/device_details.json(1 hunks)dashboard-deployments/system-monitoring-influxdb2-flux-grafana/provisioning/dashboards/overview_of_devices.json(3 hunks)dashboard-deployments/system-monitoring-influxdb2-flux-grafana/provisioning/dashboards/system_overview.json(4 hunks)
🧰 Additional context used
📓 Path-based instructions (2)
dashboard-deployments/**
⚙️ CodeRabbit configuration file
This directory contains server-side dashboard examples for visualizing data from FixedIT Data Agent running on Axis devices. These are primarily for DevOps/IT professionals comfortable with deploying Grafana dashboards and InfluxDB servers. Some dashboards work directly with bundled agent configurations, others can be customized. Licensed under Elastic License 2.0. Review for deployment complexity, dashboard usability, and proper licensing compliance. We should make sure that dashboards are portable and does not check in specific host names, or refer to other specific data from a single deployment.
Files:
dashboard-deployments/system-monitoring-influxdb2-flux-grafana/provisioning/dashboards/system_overview.jsondashboard-deployments/system-monitoring-influxdb2-flux-grafana/provisioning/dashboards/device_details.jsondashboard-deployments/system-monitoring-influxdb2-flux-grafana/provisioning/dashboards/overview_of_devices.json
**/*
⚙️ CodeRabbit configuration file
This repository serves FixedIT Data Agent users across a spectrum from plug-and-play dashboard deployment to advanced edge device customization. Consider whether changes maintain accessibility for both DevOps professionals (server-side focus) and developers (edge customization focus). If new features are added or existing ones changed significantly, ensure documentation clearly explains the intended audience and usage level. We use prettier for formatting of common file formats like markdown, yaml, json, etc. Example projects should be placed in the repo-root in a directory named project-*/. Whenever referencing Axis device model names like "D4100-VE mk II" or "M3045", prefix it with "AXIS" in capital letters (e.g. "AXIS D4100-VE mk II"). When using Axis as a company name, use "Axis Communications", note that all-caps is only used when "AXIS" is used in their product names, not their company name. When using the name of an Axis product, google on the name to verify that it is correctly identified. Avoid using 'cameras' or 'Axis cameras' unless the solution in related to visual analytics, otherwise prefer using 'Axis devices' to show that the FixedIT Data Agent also works with strobes, speakers, door stations, etc. Images used for the README should be placed in a directory called .images/ in the affected project folder. These images might also be referred to from other sources like the top-level README.md file.
Files:
dashboard-deployments/system-monitoring-influxdb2-flux-grafana/provisioning/dashboards/system_overview.jsondashboard-deployments/system-monitoring-influxdb2-flux-grafana/provisioning/dashboards/device_details.jsondashboard-deployments/system-monitoring-influxdb2-flux-grafana/provisioning/dashboards/overview_of_devices.json
🔇 Additional comments (2)
dashboard-deployments/system-monitoring-influxdb2-flux-grafana/provisioning/dashboards/overview_of_devices.json (1)
93-93: Good: bucket preserved in device links.Adding var-bucket to the URL will keep the selected bucket when navigating to Device Details.
dashboard-deployments/system-monitoring-influxdb2-flux-grafana/provisioning/dashboards/device_details.json (1)
1032-1045: LGTM: datasource variable moved to top.Reordering improves UX without changing behavior.



This makes it possible to use multiple different buckets for segmentation of different data.
Summary by CodeRabbit