Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 7 additions & 0 deletions CHANGELOG-splunkbase.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,10 @@
## [1.3.0] - December 3rd, 2024
* Updated Xray dashboard widgets and visualizations
* Improved widget layouts and data queries
* Added documentation for configuring search macros with custom index names
* Updated macros.conf with default index values
* Fixed PostgreSQL password secret path in Kubernetes deployment instructions (changed from `.data.postgresql-password` to `.data.password`)

## [1.2.9] - April 22nd, 2025
* Update search queries to fix Xray Log Volume, CPU Usage, System Memory, Disk Usage, Heap Memory graphs

Expand Down
24 changes: 22 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -107,6 +107,26 @@ Users will need to configure the HEC to accept data (enabled) and also create a
11. Save the generated token value
```

#### Configure Search Macros

After installing the app and creating your indexes, you need to configure the search macros to use your actual index names.

```text
1. Open Splunk web console as administrator
2. Click on "Settings" → "Advanced search" → "Search macros"
3. In the "App" dropdown, select "JFrog Platform Log Analytics, Violations and Metrics" (or "jfrog-logs")
4. Click on "default_index" macro to edit it
5. Change the definition from index="$SPLUNK_LOGS_INDEX$" to index="jfrog_splunk" (or your custom logs index name)
6. Click "Save"
7. Click on "default_metrics_index" macro to edit it
8. Change the definition from "index"="$SPLUNK_METRICS_INDEX$" to "index"="jfrog_splunk_metrics" (or your custom metrics index name)
9. Click "Save"
```

**Note:** If you're using environment variables `$SPLUNK_LOGS_INDEX$` and `$SPLUNK_METRICS_INDEX$` in your deployment, you can skip this step as the macros will automatically use those values.

**Important:** Without configuring these macros, the dashboards will not display any data even if your indexes contain logs and metrics.

## JFrog Metrics Setup

For non Kubernetes-based installations, enable metrics in Artifactory, make the following configuration changes to the [Artifactory System YAML](https://www.jfrog.com/confluence/display/JFROG/Artifactory+System+YAML)
Expand Down Expand Up @@ -341,7 +361,7 @@ export MASTER_KEY=$(openssl rand -hex 32)
4. Postgres password is required to upgrade Artifactory. Run the following command to get the current password

```bash
POSTGRES_PASSWORD=$(kubectl get secret artifactory-postgresql -o jsonpath="{.data.postgresql-password}" | base64 --decode)
POSTGRES_PASSWORD=$(kubectl get secret artifactory-postgresql -o jsonpath="{.data.password}" | base64 --decode)
```
5. Upgrade Artifactory installation using the command below

Expand Down Expand Up @@ -419,7 +439,7 @@ export MASTER_KEY=$(openssl rand -hex 32)
5. Postgres password is required to upgrade Artifactory. Run the following command to get the current password

```bash
POSTGRES_PASSWORD=$(kubectl get secret artifactory-ha-postgresql -o jsonpath="{.data.postgresql-password}" | base64 --decode)
POSTGRES_PASSWORD=$(kubectl get secret artifactory-ha-postgresql -o jsonpath="{.data.password}" | base64 --decode)
```
6. Upgrade Artifactory HA installation using the command below

Expand Down
2 changes: 1 addition & 1 deletion app/jfrog-logs/app.manifest
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
"id": {
"group": null,
"name": "jfrog-logs",
"version": "1.2.9"
"version": "1.3.0"
},
"author": [
{
Expand Down
2 changes: 1 addition & 1 deletion app/jfrog-logs/default/app.conf
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ state_change_requires_restart = true

[launcher]
author = JFrog
version = 1.2.9
version = 1.3.0
description = This app helps process extracted logs and metrics for the JFrog Platform, the universal, hybrid end-to-end DevOps platform. The app includes a diagnostic dashboard view for JFrog Artifactory. For more information see our blog: https://jfrog.com/blog/unified-jfrog-log-analytics-with-splunk/

[ui]
Expand Down
8 changes: 4 additions & 4 deletions app/jfrog-logs/default/data/ui/views/xray.xml
Original file line number Diff line number Diff line change
Expand Up @@ -408,7 +408,7 @@
<chart>
<title>CPU Usage</title>
<search>
<query>| mstats avg("jfrog.xray.jfob_sys_cpu_ratio") AS cpu_ratio prestats=false WHERE `default_metrics_index` $mstats_span$
<query>| mstats avg("jfrog.xray.server_sys_cpu_ratio") AS cpu_ratio prestats=false WHERE `default_metrics_index` $mstats_span$
| eval cpu_pct = (cpu_ratio * 100)
| timechart avg(cpu_pct) AS "CPU %" $timechart_span$
| fields - _span*
Expand All @@ -435,7 +435,7 @@
<chart>
<title>System Memory</title>
<search>
<query>| mstats avg("jfrog.xray.jfob_sys_memory_used_bytes") AS avg_used, avg("jfrog.xray.sys_memory_free_bytes") AS avg_free prestats=false WHERE `default_metrics_index` $mstats_span$
<query>| mstats avg("jfrog.xray.server_sys_memory_used_bytes") AS avg_used, avg("jfrog.xray.sys_memory_free_bytes") AS avg_free prestats=false WHERE `default_metrics_index` $mstats_span$
| eval mem_used_gb = (avg_used / 1024 / 1024 / 1024), mem_free_gb = (avg_free / 1024 / 1024 / 1024)
| timechart avg(mem_used_gb) AS "Sys Used(GB)", avg(mem_free_gb) AS "Sys Free(GB)" $timechart_span$
| fields - _span*
Expand All @@ -462,7 +462,7 @@
<chart>
<title>Disk Usage</title>
<search>
<query>| mstats avg("jfrog.xray.jfob_app_disk_free_bytes") AS avg_disk_free, avg("jfrog.xray.app_disk_used_bytes") AS avg_disk_used prestats=false WHERE `default_metrics_index` $mstats_span$
<query>| mstats avg("jfrog.xray.server_app_disk_free_bytes") AS avg_disk_free, avg("jfrog.xray.app_disk_used_bytes") AS avg_disk_used prestats=false WHERE `default_metrics_index` $mstats_span$
| eval disk_free_gb = (avg_disk_free / 1024 / 1024 / 1024), disk_used_gb = (avg_disk_used / 1024 / 1024 / 1024)
| timechart avg(disk_free_gb) AS "Disk Free(GB)", avg(disk_used_gb) AS "Disk Used(GB)" $timechart_span$
| fields - _span*
Expand All @@ -489,7 +489,7 @@
<chart>
<title>Heap Memory</title>
<search>
<query>| mstats avg("jfrog.xray.jfob_go_memstats_heap_objects_total") AS heap_objects , avg("jfrog.xray.go_memstats_heap_allocated_bytes") AS avg_heap_max_bytes, avg("jfrog.xray.go_memstats_heap_in_use_bytes") AS avg_heap_used_bytes prestats=false WHERE `default_metrics_index` $mstats_span$
<query>| mstats avg("jfrog.xray.server_go_memstats_heap_objects_total") AS heap_objects , avg("jfrog.xray.go_memstats_heap_allocated_bytes") AS avg_heap_max_bytes, avg("jfrog.xray.go_memstats_heap_in_use_bytes") AS avg_heap_used_bytes prestats=false WHERE `default_metrics_index` $mstats_span$
| eval heap_objs = (heap_objects), avg_heap_max_gb = (avg_heap_max_bytes / 1024 / 1024 / 1024), avg_heap_used_gb = (avg_heap_used_bytes / 1024 / 1024 / 1024)
| timechart avg(heap_objs) AS "No. of Objects", avg(avg_heap_max_gb) AS "Heap Max(GB)", avg(avg_heap_used_gb) AS "Heap Used(GB)" $timechart_span$
| fields - _span*
Expand Down
4 changes: 2 additions & 2 deletions app/jfrog-logs/default/macros.conf
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
[default_index]
definition = index="$SPLUNK_LOGS_INDEX$"
definition = index="jfrog_splunk"
iseval = 0

[default_metrics_index]
definition = "index"="$SPLUNK_METRICS_INDEX$"
definition = "index"="jfrog_splunk_metrics"
iseval = 0