Open Metrics

Open Metrics is an open standard for exposing and transmitting metrics from applications and services. It provides a common, easy-to-read format that can be utilized by different monitoring tools and systems. Unlike JMX MBeans, which is specifically designed to monitor Java applications (such as the main Artifactory service), Open Metrics can be used to monitor other Artifactory services and microservices that are written in programming languages other than Java.

📘

Subscription Information

This feature is supported on the Self-Managed platform, with a Pro, Pro X, Enterprise X, or Enterprise+ license.

📘

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 a read-only access token to get metrics, which then enables anyone with the read-only token to read metrics. To learn more, see Access Tokens.

Enable Metrics in a Self-Managed Environment

To enable metrics in Artifactory in a self-managed environment, set the following values in the Artifactory System YAML file to true:

  • shared.metrics.enabled
  • artifactory.database.metrics.enabled

You must restart Artifactory for the changes to take effect.

To enable metrics in Xray, make the following configuration change to the Xray System YAML:

openMetrics:
    enabled: true

Get Open Metrics via REST API

Use the following REST APIs to return the Open Metrics available for your installation:


Artifactory Federation Service (RTFS)

Use the following cURL command to retrieve metrics for the Artifactory Federation Service:

curl -H "Authorization: Bearer <ACCESS_TOKEN>" -X GET https://{artifactory_url}/rtfs/api/v1/metrics

📘

OpenMetrics for the Artifactory Federation Service is available on Artifactory Self-Hosted versions 7.111.12 and later, and 7.117.5 and later.


Artifactory Service Metrics

Metric

Description

Prometheus Metric Type

app_disk_used_bytes

Total disk used by the application (Home directory)

GAUGE

app_disk_free_bytes

Total disk free

GAUGE

jfrt_artifacts_gc_duration_seconds

Time taken by a GC run

GAUGE

jfrt_artifacts_gc_binaries_total

Number of binaries removed by a GC run

GAUGE

jfrt_artifacts_gc_size_cleaned_bytes

Space reclaimed by a GC run

GAUGE

jfrt_artifacts_gc_current_size_bytes

Space occupied by Binaries after a GC run (Only for FULL GC runs)

Note: This metric is deprecated as of Artifactory 7.79.0.

GAUGE

jfrt_repo_by_type_total

Number of repositories by type (local, remote, virtual) and package type.

COUNTER

jfrt_runtime_heap_freememory_bytes

Available free memory for JVM

GAUGE

jfrt_runtime_heap_maxmemory_bytes

Maximum memory configured for JVM

GAUGE

jfrt_runtime_heap_totalmemory_bytes

Total memory configured for JVM memory

GAUGE

jfrt_runtime_heap_processors_total

Total number of processors for JVM memory

COUNTER

jfrt_db_connections_active_total

Total number of active total DB connections

GAUGE

jfrt_db_connections_idle_total

Total number of idle DB connections

GAUGE

jfrt_db_connections_max_active_total

Total number of maximum DB connections

GAUGE

jfrt_db_connections_min_idle_total

Total number of min idle DB connections

GAUGE

jfrt_http_connections_available_total

(see note below table)

Total number of available outbound HTTP connections

GAUGE

jfrt_http_connections_leased_total

(see note below table)

Total number of available leased HTTP connections

GAUGE

jfrt_http_connections_pending_total

(see note below table)

Total number of available pending HTTP connections

GAUGE

jfrt_http_connections_max_total

(see note below table)

Total number of maximum HTTP connections

GAUGE

jfrt_slow_queries_duration_seconds

Slow queries duration in seconds

GAUGE

jfsh_binaries_bytes_download_total

Counts the total bytes downloaded by binary providers (cache-fs, s3-storage-v3, azure-blob-storage-v2, google-storage-v2). The name label indicates the binary provider name.

Available from Artifactory version 7.76.

COUNTER

jfsh_binaries_bytes_upload_total

Counts the total bytes uploaded by binary providers (cache-fs, s3-storage-v3, azure-blob-storage-v2, google-storage-v2). The name label indicates the binary provider name.

Available from Artifactory version 7.76.

COUNTER

jfsh_binaries_download_failures_total

Counts the total number of failed binary download operations.

Available from Artifactory version 7.76.

COUNTER

jfsh_binaries_download_successes_total

Counts the total number of successful binary download operations.

Available from Artifactory version 7.76.

COUNTER

jfsh_binaries_upload_failures_total

Counts the total number of failed binary upload operations.

Available from Artifactory version 7.76.

COUNTER

jfsh_binaries_upload_successes_total

Counts the total number of successful binary upload operations.

Available from Artifactory version 7.76.

COUNTER

jfsh_binaries_count_total

The number of binaries in the binary provider. The name and id labels relate to the binary provider in the chain.

Available from Artifactory version 7.59 provider: cache-fs.

GAUGE

jfsh_binaries_download_total

Counts the total binaries downloaded by binary providers. The name and id labels relate to the binary provider in the chain.

For cache-fs, the count is incremented only if a binary is present in the cache.

Available from Artifactory version 7.59 providers: cache-fs, s3-storage-v3, azure-blob-storage-v2, and google-storage-v2.

Available from Artifactory version 7.68 sharding and filesystem providers: file-system and state-aware.

COUNTER

jfsh_binaries_not_found_total

Counts the total requests not found. The name and id labels relate to the binary provider in the chain.

Available from Artifactory version 7.59 provider: cache-fs.

COUNTER

jfsh_binaries_upload_total

Counts the total binaries uploaded to a binary provider. The name and id labels relate to the binary provider in the chain.

Available from Artifactory version 7.59 providers: s3-storage-v3, azure-blob-storage-v2, and google-storage-v2.

Available from Artifactory version 7.68 sharding and filesystem providers: file-system and state-aware.

COUNTER

jfsh_shard_accessibility_status_total

For Artifactory instances configured to use shards, this metric obtains the accessibility status of each shard. The possible values are:

  • 1: The shard is accessible.
  • 0: The shard is inaccessible.
  • -1: A timeout occurred while checking the accessibility status of a shard.

Available from Artifactory version 7.111.4.

GAUGE

jfsh_sharding_optimization_required_total

Counts the total sharding optimizations that are required by the system.

Available from Artifactory version 7.68.

COUNTER

jfsh_cache_bypass_large_binary_total

Counts binaries that were not cached due to their large size.

Available from Artifactory version 7.111.4.

COUNTER

jfsh_cache_evicted_bytes

Counts the amount of cleared bytes from cache-fs.

Available from Artifactory version 7.55.

GAUGE

jfsh_storage_size_bytes

The size of the binaries (in bytes) in the binary provider. The name and id labels relate to the binary provider in the chain.

Available from Artifactory version 7.55 provider: cache-fs.

GAUGE

jfsh_signed_url_redirect_total

Counts how many times signed URLs were generated.

Available from Artifactory version 7.59.

COUNTER

jfsh_signed_url_redirect_bytes_total

Counts the total number of bytes that Artifactory has redirected to a client through the Signed Redirect URL. Note: This number is an estimate, as Artifactory cannot track how many times the client used the Signed URL or whether all download attempts were successful.

COUNTER

jfsh_http_connection_leased_total

The number of connections that are leased. Available from Artifactory version 7.59. Note: This metric is used only for the google-storage-v2 storage provider.

GAUGE

jfsh_http_connection_pending_total

The number of pending connections.

Available from Artifactory version 7.59. Note: This metric is used only for the google-storage-v2 storage provider.

GAUGE

Available from Artifactory version 7.59. Note: This metric is used only for the google-storage-v2 storage provider.

The maximum number of possible connections in the connection pool.

Available from Artifactory version 7.59. Note: This metric is used only for the google-storage-v2 storage provider.

GAUGE

release_bundle_deletion_total

The total number of Release Bundle versions that have been deleted from Artifactory.

Available labels include actor, bundle_type.

Available from Artifactory version 7.80.0.

Note: When the bundle_type is target, this metric includes all Release Bundles (v1 & v2). When the bundle_type is source, only Release Bundles v1 are included.

COUNTER

📘

Note

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 metric artifactory.httpconnections.metrics.max.total.repositories. The default and recommended value of this metric is 10, but you can set the value to any integer. This metric is available only when using a repository with HTTP connections.

Release Lifecycle Management Metrics

These metrics support Release Lifecycle Management.

Metric

Description

Prometheus Metric Type

jfbh_rbv2_artifact_copied_seconds

The median amount of time it takes to copy artifacts to the target repository during a promotion operation.

COUNTER

jfbh_rbv2_artifacts_total

The median number of artifacts in Release Bundle v2 versions.

COUNTER

jfbh_rbv2_bundle_operations_total

The total number of Release Bundle v2 versions that have been created.

COUNTER

jfbh_rbv2_creation_agents_total

The number of Release Bundle v2 versions created per agent:

  • browser (platform UI)
  • api
  • cli
  • system (created internally by Artifactory)

COUNTER

jfbh_rbv2_creation_methods_total

The number of Release Bundle v2 versions created per method:

  • aql
  • artifacts
  • builds
  • release bundles

COUNTER

jfbh_rbv2_promotion_created_seconds

The median amount of time it takes to perform promotions.

COUNTER

jfbh_rbv2_promotion_deletion_agents_total

The number of Release Bundle v2 promotion deletions per agent:

  • browser (platform UI)
  • api
  • cli
  • system (created internally by Artifactory)

COUNTER

jfbh_rbv2_promotion_operations_total

The total number of promotion operations (including failed promotions).

COUNTER

jfbh_rbv2_promotions_completed_total

The total number of completed promotions.

COUNTER

jfbh_rbv2_properties_total

The median total size of the artifact properties defined in Release Bundle v2 versions.

COUNTER

jfbh_rbv2_release_bundles_total

The total number of Release Bundles v2 versions that exist in the system.

COUNTER

jfbh_rbv2_version_created_seconds

The median amount of time required to create Release Bundle v2 versions.

COUNTER

jfbh_rbv2_version_deleted_seconds

The median amount of time required to delete Release Bundle v2 versions.

COUNTER

Federated Repository Metrics

The Artifactory Federation Service was introduced in late 2024 as a standalone microservice to replace the legacy Federation service. For complete details about available metrics, see Artifactory Federation Service Custom Metrics.

The following table lists metrics for the legacy Federation Service.

📘

Note

To configure legacy Federated repository monitoring, set the following Artifactory system property: artifactory.federated.metrics.enabled = true. For more information, see Artifactory System Properties for Federated Repository Metrics.

Metric

Description

Prometheus Metric Type

jfrt_federation_member_lag_total

Records all Federated repositories whose sync lag exceeds the defined threshold (in milliseconds).

The measured lag must exceed the minimum threshold value defined in the following system property:

artifactory.federated.metrics.sync.threshold.time.ms

COUNTER

jfrt_federation_max_lag_ms_total

Records the maximum lag value from among all Federated repositories in milliseconds.

COUNTER

jfrt_federation_num_mirrors_exceeding_lag_threshold_total

Records the total number of mirrors that have a sync lag larger than the default threshold.

If no mirrors have a log above the threshold, the recorded value will be 0.

COUNTER

jfrt_federation_num_repos_exceeding_lag_threshold_total

Records the total number of distinct Federated repositories that have a sync lag larger than the default threshold. This value will always be equal to or less than the Number of Mirrors Exceeding the Sync Threshold value.

If no repositories have a log above the threshold, the recorded value will be 0.

COUNTER

jfrt_federation_num_members_disabled_total

Records the number of disabled mirrors, including disabled Federated repositories from the JPD in context as well as disabled remote Federated repositories that are part of any existing Federation from the JPD in context.

COUNTER

jfrt_federation_num_repos_status_total

Records the number of Federated repositories that have the indicated status. Possible statuses include: healthy, pending full sync, full sync running, out of sync, exhausted, disabled

Access Metrics

Use the following cURL command to retrieve access metrics:

curl -H "Authorization: Bearer TOKEN" http://{artifactory_url}/access/api/v1/metrics

MetricDescriptionPrometheus Metric Type
jfac_runtime_heapRecords the Access runtime heap metricsGAUGE
jfac_db_connectionsRecords the Access database connection metricsGAUGE
jfac_slow_queriesRecords the metrics for slow Access queries.GAUGE
jfac_runtime_heap_freememory_bytesRecords the JVM free memory in bytesGAUGE
jfac_runtime_heap_maxmemory_bytesRecords the JVM maximum memory in bytesGAUGE
jfac_runtime_heap_processors_bytesRecords the number of processors available to the JVMGAUGE
jfac_runtime_heap_totalmemory_bytesRecords the JVM total memory in bytesGAUGE
jfac_observers_cancelled_totalRecords the total of cancelledgRPC server streamsCOUNTER
jfac_observers_connected_totalRecords the total of connected gRPC server streamsCOUNTER
jfac_observers_connected_current_totalRecords the total of currently connected gRPC Server streamsGAUGE
jfac_config_size_bytesRecords the size of the Access Config YAML file in bytesGAUGE
jfac_db_connections_active_totalRecords the number of active connectionsGAUGE
jfac_db_connections_awaiting_totalRecords the number of threads awaiting connectionGAUGE
jfac_db_connections_idle_totalRecords the number of idle connectionsGAUGE
jfac_db_connections_max_pool_size_totalRecords the database connections' maximum pool sizeGAUGE
jfac_db_connections_min_idle_totalRecords the database connection's minimum idle sizeGAUGE
jfac_tomcat_connections_usage_totalRecords the Access Tomcat connections usageCOUNTER
jfac_grpc_thread_completed_tasks_totalRecords the number of completed gRPC requestsCOUNTER
jfac_grpc_thread_max_concurrent_tasks_totalRecords the maximum number of concurrent gRPC requests handledGAUGE
jfac_grpc_thread_pending_tasks_totalRecords the number of gRPC requests waiting in the queueGAUGE
jfac_grpc_thread_running_tasks_totalRecords the Number of gRPC requests in progressGAUGE
jfac_grpc_thread_total_tasks_totalRecords the total number of gRPC requestsCOUNTER
app_disk_free_bytesRecords the number of free bytes on the app home directory disk deviceGAUGE
app_disk_used_bytesRecords the number of bytes used on the app home directory disk deviceGAUGE
jfac_authentication_countRecords the user authentication countCOUNTER
jfac_federation_countRecords the number of Federation publish countCOUNTER
jfac_federation_duration_seconds_countRecords the total number of Federation eventsCOUNTER
jfac_federation_duration_seconds_sumRecords the average time taken to publish a Federation eventGAUGE

Event Metrics

Use the following cURL command to retrieve event metrics:

curl -H "Authorization: Bearer TOKEN" http://{artifactory_url}/event/api/v1/metrics

Metric

Description

Prometheus Metric Type

jfevt_app_triggers_preparation_time_seconds_sum

Records metrics about time to prepare application trigger in seconds.

COUNTER

jfevt_app_triggers_preparation_time_total_count

Records metrics about the number of times an application triggers was prepared.

COUNTER

jfevt_app_triggers_target_response_time_seconds_sum

Records the total number of mirrors that have a sync lag larger than the default threshold.

If no mirrors have a log above the threshold, the recorded value will be 0.

COUNTER

jfevt_app_triggers_target_response_time_total_count

Records the total number of calls to the target.

COUNTER

jfevt_app_triggers_total_time_seconds_sum

Records the total trigger time in seconds.

COUNTER

jfevt_app_triggers_total_time_total_count

Records the total trigger time in seconds for all the triggers.

COUNTER

Worker Metrics

Use the following cURL command to retrieve Worker metrics:

curl -H "Authorization: Bearer TOKEN" http://{artifactory_url}/workers/api/v1/metrics

MetricDescriptionPrometheus Metric Type
jfwks_execution_count_totalThe total number of worker executions.GAUGE
jfwks_execution_cpu_time_totalThe accumulated CPU time for worker executions.GAUGE
jfwks_execution_failure_countThe total number of worker execution failures.COUNTER
jfwks_execution_memory_totalThe accumulated memory usage by workers.GAUGE
jfwks_execution_processing_countThe number of worker executions in progress.COUNTER
jfwks_execution_success_countThe number of successful worker executions.COUNTER
jfwks_execution_time_totalThe accumulate worker execution time.GAUGE
jfwks_tenants_count_totalThe total number of tenants being managed.GAUGE
jfwks_workers_count_totalThe total number of workers.GAUGE

Topology Metrics

Use the following cURL command to retrieve topology metrics:

curl -H "Authorization: Bearer TOKEN" http://{artifactory_url}/topology/api/v1/metrics

MetricDescriptionPrometheus Metric Type
topology_cache_evict_count_totalThe total number of items that have been evicted from the cache.COUNTER
topology_cache_failure_load_count_totalThe total number of items that failed to load to the cache.COUNTER
topology_cache_hit_count_totalThe total number of times the requested item was found in the cache (cache hit count).COUNTER
topology_cache_hit_rate_totalThe overall cache hit rate for all items.GAUGE
topology_cache_load_count_totalThe total cache load count.COUNTER
topology_cache_load_total_time_secondsThe total accumulated cache load time.GAUGE
topology_cache_miss_count_totalThe total number of time the requested item was not found in the cache (cache miss count).COUNTER
topology_cache_success_load_count_totalThe total number of items that loaded successfully from the cache.COUNTER
topology_database_migration_status_failed_db_migrations_totalThe total number of failed database migrations.COUNTER
topology_database_migration_status_successful_db_migrations_totalThe total number of successful database migrations.COUNTER
topology_db_connections_active_connections_totalThe total number of active database connections.GAUGE
topology_db_connections_awaiting_connections_totalThe total number of awaiting database connections.GAUGE
topology_db_connections_idle_connections_totalThe total number of idle database connections.GAUGE
topology_db_connections_total_connections_totalThe total number of database connections.GAUGE
topology_tenant_registry_listeners_count_totalThe total number of tenants being managed.COUNTER

JFConnect Metrics

Use the following cURL command to retrieve JFConnect metrics:

curl -H "Authorization: Bearer TOKEN" http://{artifactory_url}/jfconnect/api/v1/metrics

MetricDescriptionPrometheus Metric Type
jfcon_app_disk_used_bytesRecords the number of disk bytes used for the application.GAUGE
jfcon_app_disk_free_bytesRecords the number of disk bytes available for the application.GAUGE
jfcon_app_self_metrics_calc_secondsTotal time taken to collect all the metrics.GAUGE
jfcon_app_self_metrics_totalTotal count of the collected metrics.GAUGE
jfcon_go_memstats_heap_in_use_bytesThe amount of heap memory (in bytes) currently being used by the application.GAUGE
jfcon_go_memstats_heap_allocated_bytesThe amount of heap memory (in bytes) currently allocated to the objects.GAUGE
jfcon_go_memstats_heap_idle_bytesThe amount of memory that was allocated but is currently not being used by the application.GAUGE
jfcon_go_memstats_heap_objects_totalThe number of allocated heap objects.GAUGE
jfcon_go_memstats_heap_reserved_bytesAmount of memory obtained from OS for heap.GAUGE
jfcon_go_memstats_gc_cpu_fraction_ratioFraction of the program's available CPU time used by the Garbage Collector (GC) since the program started.GAUGE
jfcon_go_routines_totalNumber of go routines that currently exist.GAUGE
jfcon_sys_cpu_ratioCPU usage percentage of the first CPU core during a 50-millisecond interval.GAUGE
jfcon_sys_load_1Average load of the host in the last minute.GAUGE
jfcon_sys_load_5Average load of the host in the last 5 minutes.GAUGE
jfcon_sys_load_15Average load of the host in the last 15 minutes.GAUGE
jfcon_sys_memory_used_bytesVirtual memory that is used by the host.GAUGE
jfcon_sys_memory_free_bytesVirtual memory that is not used by the host.GAUGE

Router Metrics

Use the following cURL command to retrieve router metrics:

curl -H "Authorization: Bearer TOKEN" http://{artifactory_url}/router/api/v1/metrics

MetricDescriptionPrometheus Metric Type
jfrou_traefik_config_reload_totalThe total number of success router configuration reloads.COUNTER
jfrou_traefik_config_reload_total_failureThe total number of router configuration reload failures.COUNTER
jfrou_traefik_config_reload_lastSuccessTimestampThe timestamp of the last successful router configuration reload.GAUGE
jfrou_traefik_config_reload_lastFailureTimestampThe timestamp of the last unsuccessful router configuration reload.GAUGE
jfrou_traefik_entrypoint_requests_totalTotal number of router entry-point requests.COUNTER
jfrou_traefik_entrypoint_requests_tls_totalTotal number of router TLS (Transport Layer Security) entry-point requests.COUNTER
jfrou_traefik_entrypoint_request_durationDuration of router entry-point requests.GAUGE
jfrou_traefik_entrypoint_connections_openNumber of open router entry-point requests.COUNTER
jfrou_traefik_entrypoint_requests_bytes_totalTotal size (in bytes) of router entry-point requests.COUNTER
jfrou_traefik_entrypoint_responses_bytes_totalTotal size (in bytes) of router entry-point responses.COUNTER
jfrou_traefik_router_requests_totalTotal number of router requests.COUNTER
jfrou_traefik_router_requests_tls_totalTotal number of router TLS (Transport Layer Security) requests.COUNTER
jfrou_traefik_router_request_durationDuration of router requests.GAUGE
jfrou_traefik_router_connections_openNumber of open router requests.COUNTER
jfrou_traefik_router_requests_bytes_totalTotal size (in bytes) of router requests.COUNTER
jfrou_traefik_router_responses_bytes_totalTotal size (in bytes) of router responses.COUNTER
jfrou_traefik_service_requests_totalTotal number of service requests.COUNTER
jfrou_traefik_service_requests_tls_totalTotal number of service TLS (Transport Layer Security) requests.COUNTER
jfrou_traefik_service_request_durationDuration of service requests.GAUGE
jfrou_traefik_service_retries_totalTotal number of service retries.COUNTER
jfrou_traefik_service_connections_openNumber of open service connections.GAUGE
jfrou_traefik_service_requests_bytes_totalTotal size (in bytes) of service requests.COUNTER
jfrou_traefik_service_responses_bytes_totalTotal size (in bytes) of service responses.COUNTER

Observability Service Metrics

Use the following cURL command to retrieve observability metrics:

curl -H "Authorization: Bearer TOKEN" http://{artifactory_url}/observability/api/v1/metrics

MetricDescriptionPrometheus Metric Type
jfob_app_disk_used_bytesRecords the number of disk bytes used for the application.GAUGE
jfob_app_disk_free_bytesRecords the number of disk bytes available for the application.GAUGE
jfob_app_self_metrics_calc_secondsTotal time taken to collect all the metrics.GAUGE
jfob_app_self_metrics_totalTotal count of the collected metrics.GAUGE
jfob_go_memstats_heap_in_use_bytesThe amount of heap memory (in bytes) currently being used by the application.GAUGE
jfob_go_memstats_heap_allocated_bytesThe amount of heap memory (in bytes) currently allocated to the objects.GAUGE
jfob_go_memstats_heap_idle_bytesThe amount of memory that was allocated but is currently not being used by the application.GAUGE
jfob_go_memstats_heap_objects_totalThe number of allocated heap objects.GAUGE
jfob_go_memstats_heap_reserved_bytesAmount of memory obtained from OS for heap.GAUGE
jfob_go_memstats_gc_cpu_fraction_ratioFraction of the program's available CPU time used by the Garbage Collector (GC) since the program started.GAUGE
jfob_go_routines_totalNumber of go routines that currently exist.GAUGE
jfob_sys_cpu_ratioCPU usage percentage of the first CPU core during a 50-millisecond interval.GAUGE
jfob_sys_load_1Average load of the host in the last minute.GAUGE
jfob_sys_load_5Average load of the host in the last 5 minutes.GAUGE
jfob_sys_load_15Average load of the host in the last 15 minutes.GAUGE
jfob_sys_memory_used_bytesVirtual memory that is used by the host.GAUGE
jfob_sys_memory_free_bytesVirtual memory that is not used by the host.GAUGE

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

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

Xray Metrics 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.

Pipelines Metrics

The following are the three metric log files created for Pipelines:

  • Open Metrics Format:

    • Pipeline API Metrics:$JF_PRODUCT_HOME/var/log/api-metrics.log
  • Non-Open Metrics Format:

    • Pipeline Reqsealer Event Metrics:$JF_PRODUCT_HOME/var/log/reqsealer-activity-event.log
    • Pipeline Sync Event Metrics: $JF_PRODUCT_HOME/var/log/pipelinesync-activity-event.log

Pipelines Open Metrics Format

The Get Pipelines Metrics Data REST API returns the following metrics in Open Metrics format.

Metric

Description

sys_cpu_user_seconds

User CPU usage time for thethe pipelineprocess in seconds

sys_cpu_system_seconds

System CPU usage time forthe pipelineprocess in seconds

sys_cpu_total_seconds

Total CPU usage time for the pipeline process in seconds

nodejs_heap_read_only_space_total

Total size allocated for V8 heap segment “read_only_space”

nodejs_heap_read_only_space_used_total

Used size for V8 heap segment “read_only_space”

nodejs_heap_new_space_total

Total size allocated for V8 heap segment “new_space”

nodejs_heap_new_space_used_total

Used size for V8 heap segment “new_space”

nodejs_heap_old_space_total

Total size allocated for V8 heap segment “old_space”

nodejs_heap_old_space_used_total

Used size for V8 heap segment “old_space”

nodejs_heap_code_space_total

Total size allocated for V8 heap segment “code_space”

nodejs_heap_code_space_used_total

Used size for V8 heap segment “code_space”

nodejs_heap_map_space_total

Total size allocated for V8 heap segment “max_space”

nodejs_heap_map_space_used_total

Used size for V8 heap segment “max_space”

nodejs_heap_large_object_space_total

Total size allocated for V8 heap segment “large_object_space”

nodejs_heap_large_object_space_used_total

Used size for V8 heap segment “large_object_space”

nodejs_heap_code_large_object_space_total

Total size allocated for V8 heap segment “code_large_object_space”

nodejs_heap_code_large_object_space_used_total

Used size for V8 heap segment “code_large_object_space”

nodejs_heap_new_large_object_space_total

Total size allocated for V8 heap segment “new_large_object_space”

nodejs_heap_new_large_object_space_used_total

Used size for V8 heap segment “new_large_object_space”

sys_memory_free_bytes

Host free virtual memory

sys_memory_total_bytes

Host total virtual memory

jfpip_pipelines_per_project_count

📘

Note

In Pipelines 1.24 and prior, this is called jfpip_pipelines_per_project_count_count.

Number of Pipelines Per Project

jfpip_pipelines_count

📘

Note

In Pipelines 1.24 and prior, this is called jfpip_pipelines_count_count.

Number of Total Pipelines

jfpip_queue_messages_total_count

Messages Count for the Queue

jfpip_nodepool_provisionstatus_success_count

Number of node with SUCCESS provisioned status

jfpip_nodepool_provisionstatus_cached_count

Number of node with CACHED provisioned status

jfpip_nodepool_provisionstatus_processing_count

Number of node with PROCESSING provisioned status

jfpip_nodepool_provisionstatus_failure_count

Number of node with FAILURE provisioned status

jfpip_nodepool_provisionstatus_waiting_count

Number of node with WAITING provisioned status

jfpip_concurrent_active_builds_count

Active Concurrent Build Count

jfpip_concurrent_allowed_builds_count

Allowed Concurrent Build Count

jfpip_concurrent_available_builds_count

Available Concurrent Build Count

📘

Note

All node.js heap size statistics are captured using the v8.getHeapSpaceStatistics() API.

The api-metrics.logwill contain system metrics such as:

  • Total disk space used
  • Total disk space free
  • Time CPU is used by the process
  • Node JS Heap related information
📘

Non-Open Metrics Format

In addition to the metrics mentioned about, Pipelines supports the following custom activity-based Event Metrics:

  • Pipeline Run & Step Events: For every pipeline run, two types of metrics can be found in reqsealer-activity-event.log. One entry for each step status and one entry for overall pipeline status.

    {"timestamp":"2022-04-05T08:30:10.088Z","startedAt":"2022-04-05T08:30:03.986Z","queuedAt":"2022-04-05T08:30:03.010Z","domain":"step","pipelineName":"my_pipeline_2","triggeredBy":"admin","branchName":"master","stepName":"p2_s1","runNumber":2,"status":"success","durationMillis":6102,"outputArtifactsCount":0,"outputResourcesCount":0}
    {"timestamp":"2022-04-05T08:30:10.088Z","startedAt":"2022-04-05T08:30:03.986Z","domain":"run","pipelineName":"my_pipeline_2","triggeredBy":"admin","branchName":"master","runNumber":2,"status":"success","durationMillis":6102}
  • Pipeline Sync Events: For every pipeline sync activity, the following metrics can be found in pipelinesync-activity-event.log.

    {"timestamp":"2022-04-06T10:00:45.673Z","domain":"pipelineSync","pipelineSourceName":"Sample","repositoryName":"a-0908/myFirstRepo","branch":"master","status":"success","durationMillis":10498}
  • Webhook Events (Pipelines 1.25 and above): For every pipeline sync activity, the following metrics can be found in pipelinesync-activity-event.log.

    {"timestamp":"2022-06-10T16:29:29.894Z","domain":"webhook","status":"success","durationMillis":533,"webhookId":"11819184-2d88-4180-92da-aa13092d0ca4","integration":"my_bitbucket","source":"gitrepo","eventType":"branchCreated","branchName":"kt4","repositoryName":"krishnakadiyam/jfrog-pipelines-second"}
    {"timestamp":"2022-06-10T16:29:40.845Z","domain":"webhook","status":"success","durationMillis":323,"webhookId":"6d098e3a-7b4b-427c-ba53-b1174baeeabd","integration":"my_bitbucket","source":"gitrepo","eventType":"branchDeleted","branchName":"kt4","repositoryName":"krishnakadiyam/jfrog-pipelines-second"}
    {"timestamp":"2022-06-13T05:29:55.062Z","domain":"webhook","status":"success","durationMillis":234,"webhookId":"2d4d698b-b083-42fd-a28e-670d9cec4c1a","integration":"glRepo","source":"gitrepo","eventType":"tag","repositoryName":"jfrog-pipelines-second","tagName":"refs/tags/kt4"}
  • Pipelines Integrations Events (Pipelines 1.29 and above): For every integrations activity, you will find the following metrics in api-activity-event.log.

    {"timestamp":"2022-11-10T10:36:50.004Z","domain":"projectIntegrations","eventType":"create","status":"success","integrationName":"iwh","integrationId":1,"integrationType":"incomingWebhook","createdBy":"admin","updatedBy":"admin","durationMillis":188}
    {"timestamp":"2022-11-10T10:37:43.423Z","domain":"projectIntegrations","eventType":"update","status":"success","integrationName":"iwh","integrationId":1,"integrationType":"incomingWebhook","createdBy":"admin","updatedBy":"admin","durationMillis":38}
    {"timestamp":"2022-11-10T10:37:55.901Z","domain":"projectIntegrations","eventType":"delete","status":"success","integrationName":"iwh","integrationId":"1","integrationType":"incomingWebhook","createdBy":"admin","updatedBy":"admin","durationMillis":85}

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.

For more information about Prometheus scrape job configuration, see here.