Cloud customer?
Start for Free >
Upgrade in MyJFrog >
What's New in Cloud >





Overview

The JFrog Platform supports Open Metrics for Self-hosted customers (the functionality is not supported for JFrog Cloud customers).


Credentials for Accessing Open Metrics

From Artifactory version 7.21.1, an admin user can create a scoped access token using system:metrics:r and use that as the credentials for getting the service metrics. The admin can create read-only access token to get metrics, which then enables anyone with the read-only token to read metrics. To learn more, see Access Token Structure.


To enable metrics in Artifactory, make the following configuration changes to the Artifactory System YAML.

artifactory:
    metrics:
        enabled: true

While metrics are enabled by default in Xray, if they are not enabled, you can make the following configuration changes to the Xray System YAML to enable them.

xray:
    metrics:
        enabled: true

To enable metrics in Insight, make the following configuration changes to the Insight System YAML.

## Insight scheduler template
insight-scheduler:
    metrics:
        enabled: false
## Insight server template
insight-server:
    metrics:
        enabled: false

To enable metrics in Private Distribution Network (PDN) (available from Artifactory 7.38.8 and Distribution 2.12.3), make the following configuration changes to the PDN Server system.yaml.

pdnServer:
  metrics:
    enabled: true
    interval: 5
    exclude:
      - prefix_1
      - prefix_2

Next, to enable metrics in the PDN Node, make the following configuration changes to the PDN Node system.yaml.

pdnNode:
  metrics:
    enabled: true
    interval: 5
    exclude:
      - prefix_1
      - prefix_2
    basicAuthUsername: admin
    basicAuthPassword: password

JFrog Subscription Levels

Page Contents

 


Supported Open Metrics

Artifactory Metrics

The Get the Open Metrics for Artifactory REST API returns the following metrics in Open Metrics format

Metric

Description

sys_cpu_totaltime_seconds

Total CPU used by the artifactory process

app_disk_total_bytes

Total Disk used by the application (Home directory)

app_disk_free_bytes

Total Disk free
jfrt_artifacts_gc_duration_secondsTime taken by a GC run
jfrt_artifacts_gc_binaries_totalNumber of binaries removed by a GC run
jfrt_artifacts_gc_size_cleaned_bytesSpace reclaimed by a GC run
jfrt_artifacts_gc_current_size_bytesSpace occupied by Binaries after a GC run (Only for FULL GC runs)
jfrt_runtime_heap_freememory_bytesAvailable free memory for JVM 
jfrt_runtime_heap_maxmemory_bytesMaximum memory configured for JVM
jfrt_runtime_heap_totalmemory_bytesTotal memory configured for JVM memory
jfrt_runtime_heap_processors_totalTotal number of processors for JVM memory
jfrt_db_connections_active_totalTotal number of active total DB connections
jfrt_db_connections_idle_totalTotal number of idle DB connections
jfrt_db_connections_max_active_totalTotal number of maximum DB connections
jfrt_db_connections_min_idle_totalTotal number of min idle DB connections
jfrt_http_connections_available_total

Total number of available outbound HTTP connections

jfrt_http_connections_leased_totalTotal number of available leased HTTP connections
jfrt_http_connections_pending_totalTotal number of available pending HTTP connections
jfrt_http_connections_max_totalTotal number of maximum HTTP connections

jfrt_slow_queries_duration_seconds

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:

MetricDescription
jfxr_db_sync_started_before_secondsSeconds that passed since the last Xray DB sync started running

jfxr_db_sync_running_total

DB sync total running time

jfxr_db_sync_ended_persist_before_seconds

Seconds that passed since completed persisting new updates to the database

jfxr_db_sync_ended_analyze_before_seconds

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 package_type

jfxr_data_components_total

Total number of Xray scanned components by package type

Note: Package type is a label package_type

jfxr_performance_server_up_time_seconds

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

app_disk_used_bytes

Used bytes for app home directory disk device

app_disk_free_bytes

Free bytes for app home directory disk device
app_io_counters_errorError in the app io counter
app_self_metrics_calc_secondsTotal time to collect all metrics
app_self_metrics_totalCount of collected metrics
go_memstats_heap_in_use_bytesProcess go heap bytes in use
go_memstats_heap_allocated_bytesProcess go heap allocated bytes
go_memstats_heap_idle_bytesProcess go heap idle bytes
go_memstats_heap_objects_totalProcess go heap number of objects
go_memstats_heap_reserved_bytesProcess 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

app_disk_used_bytes

Used bytes for app home directory disk device

app_disk_free_bytes

Free bytes for app home directory disk device
app_io_counters_errorError in the app io counter
app_self_metrics_calc_secondsTotal time to collect all metrics
app_self_metrics_totalCount of collected metrics
go_memstats_heap_in_use_bytesProcess go heap bytes in use
go_memstats_heap_allocated_bytesProcess go heap allocated bytes
go_memstats_heap_idle_bytesProcess go heap idle bytes
go_memstats_heap_objects_totalProcess go heap number of objects
go_memstats_heap_reserved_bytesProcess 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_bytesCache used bytes
jfpdn_cache_metrics_cache_maximum_files_totalCache maximum files

jfpdn_cache_metrics_cache_maximum_bytes

Cache maximum bytes

jfpdn_cache_metrics_cache_used_files_total

Cache used files

jfpdn_downloads_speed_kbps_avg_ratio

Average download speed in PDN (Kbps)

jfpdn_downloads_errors_total

Total download errors

jfpdn_downloads_files_served_total

Total number of files served to clients

jfpdn_downloads_files_fetched_totalTotal number of files downloaded in PDN
jfpdn_downloads_bytes_served_totalTotal amount of bytes served to clients
jfpdn_downloads_bytes_fetched_totalTotal amount of bytes downloaded in PDN
jfpdn_downloads_release_bundles_totalTotal number of release bundles downloaded

jfpdn_downloads_file_providers_avg_ratio

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_bytesHost used virtual memory
sys_memory_free_bytesHost 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 it
  • username: The name of an admin user 
  • password: The admin password
  • targets: 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.

  • No labels
Copyright © 2022 JFrog Ltd.