Supported Open Metrics
Artifactory Metrics
The Get the Open Metrics for Artifactory REST API returns the following metrics in Open Metrics format.
Metric | Description |
---|---|
| Total CPU used by the artifactory process |
| Total Disk used by the application (Home directory) |
| Total Disk free |
jfrt_artifacts_gc_duration_seconds | Time taken by a GC run |
jfrt_artifacts_gc_binaries_total | Number of binaries removed by a GC run |
jfrt_artifacts_gc_size_cleaned_bytes | Space reclaimed by a GC run |
jfrt_artifacts_gc_current_size_bytes | Space occupied by Binaries after a GC run (Only for FULL GC runs) |
jfrt_runtime_heap_freememory_bytes | Available free memory for JVM |
jfrt_runtime_heap_maxmemory_bytes | Maximum memory configured for JVM |
jfrt_runtime_heap_totalmemory_bytes | Total memory configured for JVM memory |
jfrt_runtime_heap_processors_total | Total number of processors for JVM memory |
jfrt_db_connections_active_total | Total number of active total DB connections |
jfrt_db_connections_idle_total | Total number of idle DB connections |
jfrt_db_connections_max_active_total | Total number of maximum DB connections |
jfrt_db_connections_min_idle_total | Total number of min idle DB connections |
jfrt_http_connections_available_total | Total number of available outbound HTTP connections |
jfrt_http_connections_leased_total | Total number of available leased HTTP connections |
jfrt_http_connections_pending_total | Total number of available pending HTTP connections |
jfrt_http_connections_max_total | Total number of maximum HTTP connections |
| Slow queries duration in seconds |
jfrt_http_connections_*
metrics collects outbound HTTP connections for repositories sorted by available pool count. If you want to collect this information for more repositories, you can set the value in the artifactory.system.properties file (available at $JFROG_HOME/var/etc/artifactory/
) using the flag, artifactory.httpconnections.metrics.max.total.repositories
. The default and recommended value is 10. You can set the value to any integer.
Xray Metrics
The Xray Metrics REST API returns the following metrics:
Metric | Description |
---|---|
jfxr_db_sync_started_before_seconds | Seconds that passed since the last Xray DB sync started running |
| DB sync total running time |
| Seconds that passed since completed persisting new updates to the database |
| Seconds that passed since DB sync completed sending all impact analysis messages |
jfxr_data_artifacts_total | Total number of Xray scanned artifacts by package type Note: Package type is a label |
jfxr_data_components_total | Total number of Xray scanned components by package type Note: Package type is a label |
| Seconds that passed since Xray server has started on the particular node |
Logs
The artifactory_metrics.log
will contain system metrics such as:
- Total disk space used
- Total disk space free
- Time CPU is used by the process
- JVM available memory
- JVM number of processors
- DB number of active, idle, max and min connections
- HTTP number of available, leased, pending and max connections
- Xray DB sync running time
- Xray total number of scanned artifacts and components
- Xray server start time on a node
The artifactory_metrics_events.log
will contain deduplicated metrics related to an event such as a GC run.
PDN Metrics
Metrics Log Files
The following are the two metric log files created for PDN:
- PDN Server:
$JF_PRODUCT_HOME/var/log/tracker-metrics.log
- PDN Node:
$JF_PRODUCT_HOME/var/log/distribution-node-metrics.log
The PDN Server Metrics REST API returns the following metrics in Open Metrics format.
Metric | Description |
---|---|
| Used bytes for app home directory disk device |
| Free bytes for app home directory disk device |
app_io_counters_error | Error in the app io counter |
app_self_metrics_calc_seconds | Total time to collect all metrics |
app_self_metrics_total | Count of collected metrics |
go_memstats_heap_in_use_bytes | Process go heap bytes in use |
go_memstats_heap_allocated_bytes | Process go heap allocated bytes |
go_memstats_heap_idle_bytes | Process go heap idle bytes |
go_memstats_heap_objects_total | Process go heap number of objects |
go_memstats_heap_reserved_bytes | Process go heap reserved bytes |
go_memstats_gc_cpu_fraction_ratio | Process go cpu used by gc. value is between 0 and 1 |
go_routines_total | Number of go-routines that currently exist |
jftrk_cache_topology_metrics_peers_total_free_cache_size_bytes | Peers total free cache size |
jftrk_cache_topology_metrics_peers_average_cache_used_ratio | Peers average cache used |
jftrk_cache_topology_metrics_peers_average_cache_free_ratio | Peers average cache free |
jftrk_cache_topology_metrics_peers_average_max_total_cache_size_ratio | Peers average max total cache size |
jftrk_cache_topology_metrics_number_of_peers_total | Number of peers |
jftrk_cache_topology_metrics_number_of_groups_total | Number of groups |
jftrk_cache_topology_metrics_peers_total_cache_used_bytes | Peers total cache used |
jftrk_cache_topology_metrics_peers_total_max_cache_size_bytes | Peers total max cache size |
jftrk_downloads_files_fetched_total | Total number of files downloaded in PDN |
jftrk_downloads_bytes_served_total | Total amount of bytes served to clients |
jftrk_downloads_bytes_fetched_total | Total amount of bytes downloaded in PDN |
jftrk_downloads_release_bundles_total | Total number of release bundles downloaded |
jftrk_downloads_file_providers_avg_ratio | Average number of peers to download from per file |
jftrk_downloads_speed_kbps_avg_ratio | Average download speed in PDN (Kbps) |
jftrk_downloads_errors_total | Total download errors |
jftrk_downloads_files_served_total | Total number of files served to clients |
sys_load_15 | Host load average in the last 15 minutes |
sys_load_1 | Host load average in the last minute |
sys_load_5 | Host load average in the last 5 minutes |
The PDN Node Metrics REST API returns the following metrics in Open Metrics format.
Metric | Description |
---|---|
| Used bytes for app home directory disk device |
| Free bytes for app home directory disk device |
app_io_counters_error | Error in the app io counter |
app_self_metrics_calc_seconds | Total time to collect all metrics |
app_self_metrics_total | Count of collected metrics |
go_memstats_heap_in_use_bytes | Process go heap bytes in use |
go_memstats_heap_allocated_bytes | Process go heap allocated bytes |
go_memstats_heap_idle_bytes | Process go heap idle bytes |
go_memstats_heap_objects_total | Process go heap number of objects |
go_memstats_heap_reserved_bytes | Process go heap reserved bytes |
go_memstats_gc_cpu_fraction_ratio | Process go cpu used by gc. value is between 0 and 1 |
go_routines_total | Number of go-routines that currently exist |
jfpdn_cache_metrics_cache_used_bytes | Cache used bytes |
jfpdn_cache_metrics_cache_maximum_files_total | Cache maximum files |
| Cache maximum bytes |
| Cache used files |
| Average download speed in PDN (Kbps) |
| Total download errors |
| Total number of files served to clients |
jfpdn_downloads_files_fetched_total | Total number of files downloaded in PDN |
jfpdn_downloads_bytes_served_total | Total amount of bytes served to clients |
jfpdn_downloads_bytes_fetched_total | Total amount of bytes downloaded in PDN |
jfpdn_downloads_release_bundles_total | Total number of release bundles downloaded |
| Average number of peers to download from per file |
sys_load_15 | Host load average in the last 15 minutes |
sys_load_1 | Host load average in the last minute |
sys_load_5 | Host load average in the last 5 minutes |
sys_memory_used_bytes | Host used virtual memory |
sys_memory_free_bytes | Host free virtual memory |
Usage Example - Prometheus
Update the prometheus.yml
file to add a scrape job. Update the following configuration with the adequate values:
job_name
: Use a unique name among other scrape jobs. All metrics collected through this job will have automatically a ‘job
’ label with this value added to itusername
: The name of an admin userpassword
: The admin passwordtargets
: The URL of the Artifactory node.
- job_name: 'artifactory' # Configures the protocol scheme used for requests. [scheme: <scheme> | default = http] # Sets the `Authorization` header on every scrape request with # the configured credentials. authorization: [type: <string> | default: Bearer] credentials: <secret> # metrics_path defaults to '/metrics' metrics_path: '/artifactory/api/v1/metrics' static_configs: - targets: ['<JFROG_URL>:<PORT>']
For more information about Prometheus scrap job configuration, see here.