Metrics

A metric is a collection of costs (memory, network, CPU, ...) associated with some function calls. Blackfire offers some built-in metrics, but you can also create your custom metrics.

You can define the performance expectations of your projects by setting an expected metric value, on a given metric dimension, in assertions. To write an assertion on a specific dimension, append the dimension name to the metric name, separated with a ..

For instance, for the sql.queries metric, the number of calls is stored in the metrics.sql.queries.count and the memory usage in metrics.sql.queries.peak_memory. To check that you don't have more than 10 SQL queries in an assertion, you would write metrics.sql.queries.count <= 10.

The available dimensions for metrics are the following ones.

  • count
  • wall_time
  • cpu_time
  • memory
  • peak_memory
  • network_in
  • network_out
  • io

Here is the list of built-in metrics that are always available in assertions:

  • metrics.amqp - AMQP
  • metrics.amqp.config - AMQP Configuration
  • metrics.amqp.connections - AMQP Connections
  • metrics.amqp.connections.go - AMQP Connections (go)
  • metrics.amqp.librabbitmq.connections - librabbitmq Connections (celery/librabbitmq)
  • metrics.amqp.messages - AMQP Messages
  • metrics.amqp.messages.go - AMQP Messages (go)
  • metrics.amqp.phpamqp.config - AMQP Configuration (pdezwart/php-amqp)
  • metrics.amqp.phpamqp.connections - AMQP Connections (pdezwart/php-amqp)
  • metrics.amqp.phpamqp.messages - AMQP Messages (pdezwart/php-amqp)
  • metrics.amqp.phpamqplib.config - AMQP Configuration (videlalvaro/php-amqplib)
  • metrics.amqp.phpamqplib.connections - AMQP Connections (videlalvaro/php-amqplib)
  • metrics.amqp.phpamqplib.messages - AMQP Messages (videlalvaro/php-amqplib)
  • metrics.amqp.pika.connections - pika Connections (pika/pika)
  • metrics.amqp.pyamqp.connections - pyamqp Connections (celery/py-amqp)
  • metrics.api_platform.installed - API Platform installed?
  • metrics.api_platform2.installed - API Platform 2 installed?
  • metrics.assetic.controller.calls - Assetic Asset Renderer
  • metrics.aura.installed - Aura PHP installed
  • metrics.badger - Badger
  • metrics.badger.read - Badger Reads
  • metrics.badger.transaction - Badger Transactions
  • metrics.badger.write - Badger Writes
  • metrics.bbolt - BBolt
  • metrics.bbolt.read - BBolt Reads
  • metrics.bbolt.transaction - BBolt Transactions
  • metrics.bbolt.write - BBolt Writes
  • metrics.blackfire.add_marker - Blackfire Markers
  • metrics.blackfire.sdk.probe - Blackfire SDK Instrumentation
  • metrics.blackfire.span - Blackfire Spans
  • metrics.bolt.application.construct - Bolt CMS Application Construct
  • metrics.bolt.application.initialize - Bolt CMS Application Initialize
  • metrics.bolt.providers - Bolt CMS Service Providers Registration
  • metrics.cache - Cache
  • metrics.cache.delete - Cache Delete
  • metrics.cache.flush - Cache Flush
  • metrics.cache.get - Cache Get
  • metrics.cache.has - Cache Has
  • metrics.cache.set - Cache Set
  • metrics.cassandra - Cassandra
  • metrics.cassandra.query - Cassandra Query
  • metrics.cassandra.query.go - Cassandra Query
  • metrics.celery.python - Celery
  • metrics.code_igniter.installed - Code Igniter installed?
  • metrics.commonmark.parse.parsedown - Markdown Parser (thephpleague/commonmark)
  • metrics.compile - Compiled Scripts
  • metrics.composer.autoload.find_file - Composer ClassLoader File Finder
  • metrics.crypto - Cryptographic events
  • metrics.crypto.cipher - Create a new block cipher
  • metrics.crypto.decrypt - Decrypt data
  • metrics.crypto.defuse - Defuse crypto library
  • metrics.crypto.defuse.decrypt - Defuse crypto library decryption
  • metrics.crypto.defuse.encrypt - Defuse crypto library encryption
  • metrics.crypto.encrypt - Encrypt data
  • metrics.crypto.mcrypt - Mcrypt Functions
  • metrics.crypto.sign - Sign a hash
  • metrics.crypto.sum - Checksum
  • metrics.crypto.verify - Verify signature
  • metrics.cs_cart.installed - CS-Cart installed?
  • metrics.django - Django
  • metrics.django.auth - Django auth
  • metrics.django.authentication - Django auth
  • metrics.django.authorization - Django authorization
  • metrics.django.cache - Django Cache
  • metrics.django.cache.backends.db.delete - Django Cache
  • metrics.django.cache.backends.db.get - Django Cache
  • metrics.django.cache.backends.db.set - Django Cache
  • metrics.django.cache.backends.filebased.delete - Django Cache
  • metrics.django.cache.backends.filebased.get - Django Cache
  • metrics.django.cache.backends.filebased.set - Django Cache
  • metrics.django.cache.backends.locmem.delete - Django Cache
  • metrics.django.cache.backends.locmem.get - Django Cache
  • metrics.django.cache.backends.locmem.set - Django Cache
  • metrics.django.cached_template_loader - Django Cached Template Loader enabled
  • metrics.django.clickjacking_protection - Django Clickjacking middleware enabled
  • metrics.django.csrf_protection - Django CSRF middleware enabled
  • metrics.django.models.created - A Django model object is created
  • metrics.django.models.queryset - Django Models QuerySet usage
  • metrics.django.models.sql_compilation - Django Models SQL compilation
  • metrics.django.security_middleware - Django Security middleware enabled
  • metrics.django.serializer.deserialize - Django Serializer deserialize
  • metrics.django.serializer.serialize - Django Serializer serialize
  • metrics.django.sessions - Django Sessions
  • metrics.django.sessions.backends.cache - Django sessions cache backend
  • metrics.django.sessions.backends.cached_db - Django sessions cached_db backend
  • metrics.django.sessions.backends.db - Django sessions DB backend
  • metrics.django.sessions.backends.file - Django sessions file backend
  • metrics.django.sessions.cache - Django cached sessions
  • metrics.django.signals - Django Signals
  • metrics.django.signals.auth - Django auth signals
  • metrics.django.signals.core - Django core signals
  • metrics.django.signals.db - Django db signals
  • metrics.django.template - Django templates
  • metrics.django.template.compile - Django template compilation
  • metrics.django.template.engine.django - Django inner template engine
  • metrics.django.template.engine.jinja2 - Jinja2 template engine for Django
  • metrics.django.template.render - Django template rendering
  • metrics.django.views - Django views
  • metrics.django.views.class_based - Django class-based views
  • metrics.django.views.function_based - Django function-based views
  • metrics.django.wsgi - Django WSGI handling
  • metrics.django.wsgi.resolve_request - Django WSGI resolve request
  • metrics.django.wsgi.view_process - Django WSGI view process
  • metrics.doctrine.annotations.parsed - Doctrine Annotation Parser
  • metrics.doctrine.annotations.read - Doctrine Annotation Reader
  • metrics.doctrine.cache.delete - Doctrine Cache Delete
  • metrics.doctrine.cache.flush - Doctrine Cache Clear
  • metrics.doctrine.cache.get - Doctrine Cache Get
  • metrics.doctrine.cache.has - Doctrine Cache Has
  • metrics.doctrine.cache.set - Doctrine Cache Set
  • metrics.doctrine.dql.parsed - Doctrine DQL Parser
  • metrics.doctrine.entities.created - A Doctrine entity is created
  • metrics.doctrine.entities.hydrated - One or more Doctrine entities is hydrated (turned into an object)
  • metrics.doctrine.entities.metadata - Doctrine Metadata Loader
  • metrics.doctrine.event_manager.dispatch - Doctrine Event Dispatcher
  • metrics.doctrine.orm.find - Doctrine EntityRepository find
  • metrics.doctrine.orm.flush - Doctrine EntityManager Flushes
  • metrics.doctrine.paginator.dql.parsed - Doctrine Paginator using the Doctrine DQL Parser
  • metrics.doctrine.paginator.fetch_join_collection - Doctrine Paginator used with fetchJoinCollection
  • metrics.doctrine.proxies.generated - Doctrine Proxy Generator
  • metrics.doctrine.proxies.loaded - Doctrine Proxy Lazy-Loader
  • metrics.drupal7.block.access - Drupal Block Viewer
  • metrics.drupal7.block_cache.construct - Drupal Block Cache
  • metrics.drupal7.cache.fake - Drupal Fake Cache
  • metrics.drupal7.cron.automated - Drupal Cron Run via Web
  • metrics.drupal7.cron.drush - Drupal Cron Run via Drush
  • metrics.drupal7.cron.run - Drupal Cron Run
  • metrics.drupal7.dblog - Drupal Database Logger
  • metrics.drupal7.drush - Drupal Drush
  • metrics.drupal7.entity_load.any - Drupal Entity Loader
  • metrics.drupal7.fast_404 - Drupal Fast 404
  • metrics.drupal7.fast_cache - Drupal APC Cache
  • metrics.drupal7.installed - Is Drupal 7 installed?
  • metrics.drupal7.module.contrib.loaded - Drupal Contrib Module Loader
  • metrics.drupal7.module.panels.installed - Panels Module Installed
  • metrics.drupal7.page_cache_anonymous.construct - Drupal Page Cache anonymous
  • metrics.drupal7.page_cache_authenticated.construct - Drupal Page Cache authenticated
  • metrics.drupal7.panels.cached - Cached Panels
  • metrics.drupal7.panels.render - Panels Renderer
  • metrics.drupal7.php.load - Drupal PHP File Loader
  • metrics.drupal7.preprocess.css - Drupal CSS Aggregator
  • metrics.drupal7.preprocess.js - Drupal JS Aggregator
  • metrics.drupal7.session.anonymous - Drupal Anonymous Session
  • metrics.drupal7.theme.debug - Drupal Theme Debugger
  • metrics.drupal7.views.uncached - Drupal Uncached Views
  • metrics.drupal8.block.access - Drupal Block Access Checker
  • metrics.drupal8.cache.null - Drupal Null Cache
  • metrics.drupal8.cache.views - Drupal Uncached Views
  • metrics.drupal8.cron.drush - Drupal Cron Run via Drush
  • metrics.drupal8.cron.requested - Drupal Cron Run via Web
  • metrics.drupal8.cron.run - Drupal Cron Run
  • metrics.drupal8.dblog - Drupal Database Logger
  • metrics.drupal8.drush - Drupal Drush
  • metrics.drupal8.dynamic_page_cache.construct - Dynamic drupal Page Cache
  • metrics.drupal8.entity_load.content - Drupal Content Entities Loader
  • metrics.drupal8.fast_cache - Drupal APCu Cache
  • metrics.drupal8.help_module.construct - Help module
  • metrics.drupal8.installed - Is Drupal 8 installed?
  • metrics.drupal8.module.loaded.contrib - Drupal Contrib Module Loader
  • metrics.drupal8.page_cache.construct - Drupal Page Cache
  • metrics.drupal8.php.load - Drupal PHP File Loader
  • metrics.drupal8.preprocess.css - Drupal CSS Asset Resolver
  • metrics.drupal8.preprocess.js - Drupal JavaScript Asset Resolver
  • metrics.drupal8.twig.debug - Drupal Twig Debugger
  • metrics.drupal8.twig_cache.construct - Twig Cache
  • metrics.drupal8.update_module.construct - Update manager module
  • metrics.elasticsearch - Elasticsearch
  • metrics.elasticsearch.elastica.logs - Elastica Logs
  • metrics.elasticsearch.elastica.queries - Elastica Queries
  • metrics.elasticsearch.elasticsearch.queries - Elasticsearch Queries
  • metrics.elasticsearch.queries - Elasticsearch Queries
  • metrics.elasticsearch.queries.go - Elasticsearch Queries
  • metrics.elasticsearch.queries.python - Elasticsearch Queries
  • metrics.emails - Mailer
  • metrics.emails.sent - Mails Sent
  • metrics.emails.sent.go - Go Emails Sent
  • metrics.emails.sent.mandrill - Mandrill Emails Sent
  • metrics.emails.sent.php - PHP Emails Sent
  • metrics.emails.sent.php_mailer - PHPMailer Emails Sent
  • metrics.emails.sent.swiftmailer - Swiftmailer Emails Sent
  • metrics.emails.sent.symfony_mailer - Symfony Mailer Emails Sent
  • metrics.entities.created - Database entities created
  • metrics.ezplatform.controller.view_controller - ezplatform.controller.view_controller metric is deprecated in favor of ibexa.controller.view_controller one
  • metrics.ezplatform.controller.view_controller_deprecated_calls - ezplatform.controller.view_controller_deprecated_calls metric is deprecated in favor of ibexa.controller.view_controller_deprecated_calls one
  • metrics.ezplatform.core.persistence.content_handler.read_only_uncached_calls - ezplatform.core.persistence.content_handler.read_only_uncached_calls metric is deprecated in favor of ibexa.core.persistence.content_handler.read_only_uncached_calls one
  • metrics.ezplatform.core.persistence.content_language_handler.read_only_uncached_calls - ezplatform.core.persistence.content_language_handler.read_only_uncached_calls metric is deprecated in favor of ibexa.core.persistence.content_language_handler.read_only_uncached_calls one
  • metrics.ezplatform.core.persistence.content_type_handler.read_only_uncached_calls - ezplatform.core.persistence.content_type_handler.read_only_uncached_calls metric is deprecated in favor of ibexa.core.persistence.content_type_handler.read_only_uncached_calls one
  • metrics.ezplatform.core.persistence.handlers - ezplatform.core.persistence.handlers metric is deprecated in favor of ibexa.core.persistence.handlers one
  • metrics.ezplatform.core.persistence.legacy.handlers - ezplatform.core.persistence.legacy.handlers metric is deprecated in favor of ibexa.core.persistence.legacy.handlers one
  • metrics.ezplatform.core.persistence.location_handler.read_only_uncached_calls - ezplatform.core.persistence.location_handler.read_only_uncached_calls metric is deprecated in favor of ibexa.core.persistence.location_handler.read_only_uncached_calls one
  • metrics.ezplatform.core.persistence.object_state_handler.read_only_uncached_calls - ezplatform.core.persistence.object_state_handler.read_only_uncached_calls metric is deprecated in favor of ibexa.core.persistence.object_state_handler.read_only_uncached_calls one
  • metrics.ezplatform.core.persistence.section_handler.read_only_uncached_calls - ezplatform.core.persistence.section_handler.read_only_uncached_calls metric is deprecated in favor of ibexa.core.persistence.section_handler.read_only_uncached_calls one
  • metrics.ezplatform.core.persistence.trash_handler.read_only_uncached_calls - ezplatform.core.persistence.trash_handler.read_only_uncached_calls metric is deprecated in favor of ibexa.core.persistence.trash_handler.read_only_uncached_calls one
  • metrics.ezplatform.core.persistence.url_alias_handler.read_only_uncached_calls - ezplatform.core.persistence.url_alias_handler.read_only_uncached_calls metric is deprecated in favor of ibexa.core.persistence.url_alias_handler.read_only_uncached_calls one
  • metrics.ezplatform.core.persistence.url_wildcard.read_only_uncached_calls - ezplatform.core.persistence.url_wildcard.read_only_uncached_calls metric is deprecated in favor of ibexa.core.persistence.url_wildcard.read_only_uncached_calls one
  • metrics.ezplatform.core.persistence.user_handler.read_only_uncached_calls - ezplatform.core.persistence.user_handler.read_only_uncached_calls metric is deprecated in favor of ibexa.core.persistence.user_handler.read_only_uncached_calls one
  • metrics.ezplatform.core.repository.services - ezplatform.core.repository.services metric is deprecated in favor of ibexa.core.repository.services one
  • metrics.ezplatform.installed - eZ Platform installed?
  • metrics.ezplatform.signal_slot_dispatcher.emit - ezplatform.signal_slot_dispatcher.emit metric is deprecated in favor of ibexa.signal_slot_dispatcher.emit one
  • metrics.ezplatform.template.fields - ezplatform.template.fields metric is deprecated in favor of ibexa.template.fields one
  • metrics.fos_elastica_bundle - FOS Elastica bundle installed?
  • metrics.fos_http_cache_bundle - FOS HttpCache Bundle installed?
  • metrics.fos_message_bundle - FOS Message bundle installed?
  • metrics.fos_rest_bundle - FOS Rest Bundle installed?
  • metrics.fos_user_bundle - FOS User bundle installed?
  • metrics.gorm.create - GORM Create
  • metrics.gorm.delete - GORM Delete
  • metrics.gorm.read - GORM Read
  • metrics.gorm.update - GORM Update
  • metrics.graph_ql - GraphQL is used
  • metrics.grpc - Google RPC
  • metrics.grpc.receive - GRPC Receive message
  • metrics.grpc.receive.go - grpc-go Receive message
  • metrics.grpc.send - GRPC Send message
  • metrics.grpc.send.go - grpc-go Send message
  • metrics.http.curl.requests - cURL HTTP Requests
  • metrics.http.exif.requests - Exif HTTP Requests
  • metrics.http.gd.requests - GD HTTP Requests
  • metrics.http.go.requests - requests HTTP Requests
  • metrics.http.gorilla.requests - requests HTTP Requests
  • metrics.http.iris.requests - requests HTTP Requests
  • metrics.http.php_stream.requests - PHP Stream HTTP Requests
  • metrics.http.requests - HTTP Requests
  • metrics.http.ruby.http.requests - HTTP Requests
  • metrics.http.soap.requests - SOAP HTTP Requests
  • metrics.http.socket.requests - Socket HTTP Requests
  • metrics.hwi_oauth_bundle - HWI OAuth Bundle installed?
  • metrics.ibexa.controller.view_controller - Ibexa [MVC] View Controller
  • metrics.ibexa.controller.view_controller_deprecated_calls - Ibexa [MVC] View Controller
  • metrics.ibexa.core.persistence.content_handler.read_only_uncached_calls - Ibexa [SPI] Persistence Cache ContentHandler - read-only uncached calls
  • metrics.ibexa.core.persistence.content_language_handler.read_only_uncached_calls - Ibexa [SPI] Persistence Cache ContentLanguageHandler - read-only uncached calls
  • metrics.ibexa.core.persistence.content_type_handler.read_only_uncached_calls - Ibexa [SPI] Persistence Cache ContentTypeHandler - read-only uncached calls
  • metrics.ibexa.core.persistence.handlers - Ibexa [SPI] Persistence Cache Handlers
  • metrics.ibexa.core.persistence.legacy.handlers - Ibexa [SPI] Persistence Legacy (Database) Handlers
  • metrics.ibexa.core.persistence.location_handler.read_only_uncached_calls - Ibexa [SPI] Persistence Cache LocationHandler - read-only uncached calls
  • metrics.ibexa.core.persistence.object_state_handler.read_only_uncached_calls - Ibexa [SPI] Persistence Cache ObjectStateHandler - read-only uncached calls
  • metrics.ibexa.core.persistence.section_handler.read_only_uncached_calls - Ibexa [SPI] Persistence Cache SectionHandler - read-only uncached calls
  • metrics.ibexa.core.persistence.trash_handler.read_only_uncached_calls - Ibexa [SPI] Persistence Cache TrashHandler - read-only uncached calls
  • metrics.ibexa.core.persistence.url_alias_handler.read_only_uncached_calls - Ibexa [SPI] Persistence Cache UrlAliasHandler - read-only uncached calls
  • metrics.ibexa.core.persistence.url_wildcard.read_only_uncached_calls - Ibexa [SPI] Persistence Cache UrlWildcard - read-only uncached calls
  • metrics.ibexa.core.persistence.user_handler.read_only_uncached_calls - Ibexa [SPI] Persistence Cache UserHandler - read-only uncached calls
  • metrics.ibexa.core.repository.services - Ibexa [API] Repository Service method calls
  • metrics.ibexa.installed - Ibexa installed?
  • metrics.ibexa.signal_slot_dispatcher.emit - Ibexa [API] Repository Signal Slot Dispatcher
  • metrics.ibexa.template.fields - Ibexa [MVC] Content Field Render
  • metrics.jms.serializer.deserialize - JMS Serializer deserialize
  • metrics.jms.serializer.serialize - JMS Serializer serialize
  • metrics.kafka - Kafka
  • metrics.kafka.config - Kafka Configuration
  • metrics.kafka.consume - Kafka Consume
  • metrics.kafka.misc - Kafka Miscellaneous Operations
  • metrics.kafka.php_rdkafka.config - Kafka Configuration
  • metrics.kafka.php_rdkafka.consume - PHP Rdkafka Consume
  • metrics.kafka.php_rdkafka.misc - Kafka Miscellaneous Operations
  • metrics.kafka.php_rdkafka.produce - PHP Rdkafka Produce
  • metrics.kafka.produce - Kafka Produce
  • metrics.kafka.sarama.consume - sarama Consume
  • metrics.kafka.sarama.produce - sarama Produce
  • metrics.kohana.installed - Kohanna framework installed?
  • metrics.laravel - Laravel framework
  • metrics.laravel.cache - Laravel Cache
  • metrics.laravel.cache.apc - Laravel APC cache store
  • metrics.laravel.cache.array - Laravel Array (in-memory) cache store
  • metrics.laravel.cache.array_config_default - Laravel Cache array default driver
  • metrics.laravel.cache.database - Laravel Database cache store
  • metrics.laravel.cache.dynamodb - Laravel DynamoDB cache store
  • metrics.laravel.cache.file - Laravel File cache store
  • metrics.laravel.cache.memcached - Laravel Memcached cache store
  • metrics.laravel.cache.null - Laravel Null cache store
  • metrics.laravel.cache.null_config_default - Laravel Cache null default driver
  • metrics.laravel.cache.redis - Laravel Redis cache store
  • metrics.laravel.config.load - Laravel configuration loading
  • metrics.laravel.database.hydration - Laravel Database hydration
  • metrics.laravel.debug - Laravel debug mode
  • metrics.laravel.debug_bar.enable - Laravel enable debug bar
  • metrics.laravel.debug_bar.middleware - Laravel debug bar middleware
  • metrics.laravel.eloquent.models.created - A Laravel Eloquent Model object is created
  • metrics.laravel.eloquent.models.relationships - Laravel Eloquent Model Relationships
  • metrics.laravel.eloquent.models.relationships.eager_loaded - Relationships eager loaded
  • metrics.laravel.eloquent.models.relationships.lazy_loaded - Relationships lazy loaded
  • metrics.laravel.event_dispatcher - Laravel Event Dispatcher
  • metrics.laravel.installed - Laravel installed?
  • metrics.laravel.kernel.bootstrap - Laravel kernel bootstrap
  • metrics.laravel.log - Laravel Log
  • metrics.laravel.middleware.add_queued_cookies_to_response - Laravel add queued cookies to response middleware
  • metrics.laravel.middleware.authenticate - Laravel authenticate middleware
  • metrics.laravel.middleware.authenticate_basic - Laravel authenticate basic middleware
  • metrics.laravel.middleware.authorize - Laravel authorize middleware
  • metrics.laravel.middleware.check_for_maintenance - Laravel check for maintenance middleware
  • metrics.laravel.middleware.csrf - Laravel CSRF middleware
  • metrics.laravel.middleware.encrypt_cookie - Laravel encrypt cookie middleware
  • metrics.laravel.middleware.session - Laravel session middleware
  • metrics.laravel.middleware.share_errors - Laravel share errors from session middleware
  • metrics.laravel.middleware.substiture_bindings - Laravel binding substitution middleware
  • metrics.laravel.middleware.throttle_requests - Laravel throttle requests middleware
  • metrics.laravel.queues.dispatch - Laravel Queues Dispatch
  • metrics.laravel.queues.dispatch.async - Laravel Queues Asynchronous Dispatch
  • metrics.laravel.queues.dispatch.sync - Laravel Queues Synchronous Dispatch
  • metrics.laravel.queues.sync_config_default - Laravel Queues sync default config
  • metrics.laravel.route.load - Laravel routes loading
  • metrics.laravel.router.dispatch - Laravel router dispatch
  • metrics.laravel.router.prepare_response - Laravel router prepare response
  • metrics.laravel.router.route_run - Laravel route run
  • metrics.laravel.view.compile - Laravel view compilation
  • metrics.laravel.view.render - Laravel view render
  • metrics.laravel.workbench_starter - Laravel Workbench starter
  • metrics.leveldb - LevelDB
  • metrics.leveldb.read - LevelDB Reads
  • metrics.leveldb.write - LevelDB Writes
  • metrics.logs.browser - Logs sent to the browser
  • metrics.logs.log_call - Log Calls
  • metrics.magento1.action.catalog_category_view - Action catalog_category_view (category page)
  • metrics.magento1.action.catalog_product_view - Action catalog_product_view (product page)
  • metrics.magento1.action.checkout_cart_index - Action checkout_cart_index (cart page)
  • metrics.magento1.action.cms_index_index - Action cms_index_index (homepage)
  • metrics.magento1.action.cms_page_view - Action cms_page_view (any CMS page)
  • metrics.magento1.all.installed - Is Magento 1 installed?
  • metrics.magento1.block.cache.load.get_cache_key - Get block's cache key during cache load
  • metrics.magento1.collection.cache.load - Load the collection cache
  • metrics.magento1.collection.cache.unserialize - Unserialize the collection cache
  • metrics.magento1.collection.load - Collection load
  • metrics.magento1.collection.product.load - Collection Product load
  • metrics.magento1.config.read - Read the configuration
  • metrics.magento1.controller.checkout_onepage - Any action on the checkout's onepage
  • metrics.magento1.controller.customer_account - Any action on the customer's account
  • metrics.magento1.customer.logged_in - Load the customer of the current session
  • metrics.magento1.ee.installed - Is Magento 1 EE installed?
  • metrics.magento1.events - Fire Magento event
  • metrics.magento1.layout.update.save_cache - Load layout updates by handles
  • metrics.magento1.model.load - Model load
  • metrics.magento1.model.product.load - Model Product load
  • metrics.magento1.translate.cache.load - Load the translation cache
  • metrics.magento1.translate.cache.unserialize - Unserialize the translation cache
  • metrics.magento2.all.action.catalog_category_view - Action catalog_category_view (category page)
  • metrics.magento2.all.action.catalog_product_view - Action catalog_product_view (product page)
  • metrics.magento2.all.action.checkout_cart_index - Action checkout_cart_index (cart page)
  • metrics.magento2.all.action.cms_index_index - Action cms_index_index (homepage)
  • metrics.magento2.all.action.cms_page_view - Action cms_page_view (any CMS page)
  • metrics.magento2.all.cache.any.save - Any cache save
  • metrics.magento2.all.cache.block.save.action - Save (and not ask to) a block in cache
  • metrics.magento2.all.cache.block.save.call - Ask to save a block in cache
  • metrics.magento2.all.cache.clean.action - Clean a cache, only if it's enabled
  • metrics.magento2.all.cache.clean.call - Ask to clean a cache, even if it's not enabled
  • metrics.magento2.all.cache.ddl.read - Read in DB information which should be in cache
  • metrics.magento2.all.cache.eav.read - Read EAV entity types in database
  • metrics.magento2.all.cache.full_page.builtin.hit - Hit full page cache using builtin
  • metrics.magento2.all.cache.layout.read - Read of Layout files
  • metrics.magento2.all.cache.reflection.read - Read Reflection data
  • metrics.magento2.all.cache.translate.read - Read Translation file
  • metrics.magento2.all.collection.add_attribute_to_select.wildcard - Add attributes to entities in collection with a wildcard
  • metrics.magento2.all.collection.load - Collection load
  • metrics.magento2.all.collection.product.load - Collection Product load
  • metrics.magento2.all.config.css.merge_css_files.enabled - Merge of CSS files is enabled
  • metrics.magento2.all.config.di.read - Configuration DI read [from disk]
  • metrics.magento2.all.config.js.enable_js_bundling.enabled - The config dev/js/enable_js_bundling is enabled
  • metrics.magento2.all.config.js.merge_js_files.enabled - Merge of JS files is enabled
  • metrics.magento2.all.controller.checkout - Any action on the checkout's onepage
  • metrics.magento2.all.controller.customer_account - Any action on the customer's account (logged in)
  • metrics.magento2.all.frontend.blocks.load_cache.hit - Load cache hit for blocks
  • metrics.magento2.all.frontend.blocks.to_html - Number of blocks displayed
  • metrics.magento2.all.frontend.blocks.with_lifetime - Blocks which have a lifetime
  • metrics.magento2.all.installed - Is Magento 2 installed?
  • metrics.magento2.all.logger.db - DB Logger
  • metrics.magento2.all.mode.default - Application Mode default
  • metrics.magento2.all.mode.developer - Application Mode developer
  • metrics.magento2.all.mode.production - Application Mode production
  • metrics.magento2.all.model.cms_page.load - Model CMS Page load
  • metrics.magento2.all.model.load - Model load
  • metrics.magento2.all.model.product.load - Model Product load
  • metrics.magento2.all.profiler - Profiler
  • metrics.magento2.backend.admin.front_name - Magento admin URL path
  • metrics.magento2.cache.block_html - Magento block HTML cache status
  • metrics.magento2.cache.collections - Magento collections cache status
  • metrics.magento2.cache.compiled_config - Magento compiled config cache status
  • metrics.magento2.cache.config - Magento config cache status
  • metrics.magento2.cache.config_integration - Magento config_integration cache status
  • metrics.magento2.cache.config_integration_api - Magento config integration API cache status
  • metrics.magento2.cache.config_webservice - Magento config webservice cache status
  • metrics.magento2.cache.db_ddl - Magento db ddl cache status
  • metrics.magento2.cache.eav - Magento eav cache status
  • metrics.magento2.cache.full_page - Magento full page cache status
  • metrics.magento2.cache.layout - Magento layout cache status
  • metrics.magento2.cache.reflection - Magento reflection cache status
  • metrics.magento2.cache.translate - Magento translate cache status
  • metrics.magento2.ee.installed - Is Magento 2 EE installed?
  • metrics.magento2.events - Fire Magento event
  • metrics.magento2.interceptors - Magento interceptors
  • metrics.magento2.session.db - Magento session save in db
  • metrics.magento2.session.files - Magento session save in files
  • metrics.magento2.session.redis - Magento session save in redis
  • metrics.magento2.template.render - Template rendering
  • metrics.main - Main node
  • metrics.markdown - Markdown
  • metrics.markdown.parse - Markdown Parser
  • metrics.markdown.parse.parsedown - Markdown Parser (erusev/parsedown)
  • metrics.memcache - Memcache
  • metrics.memcache.config - Memcache Config
  • metrics.memcache.config.php - Memcache Config
  • metrics.memcache.connections - Memcache Connections
  • metrics.memcache.connections.php - Memcache Connections
  • metrics.memcache.connections.python - Memcache Connections
  • metrics.memcache.misc - Memcache Miscellaneous Operations
  • metrics.memcache.misc.php - Memcache Miscellaneous Operations
  • metrics.memcache.queries - Memcache Queries
  • metrics.memcache.queries.php - Memcache Queries
  • metrics.memcache.queries.python - Memcache Queries
  • metrics.memcached - Memcached
  • metrics.memcached.config - Memcached Config
  • metrics.memcached.misc - Memcached Miscellaneous Operations
  • metrics.memcached.php.config - Memcached Configuration
  • metrics.memcached.php.misc - Memcached Miscellaneous Operations
  • metrics.memcached.php.queries - Memcached Queries
  • metrics.memcached.queries - Memcached Queries
  • metrics.michelf.parse.parsedown - Markdown Parser (michelf/php-markdown)
  • metrics.mongodb - MongoDB
  • metrics.mongodb.config - MongoDB Configuration Operations
  • metrics.mongodb.connections - MongoDB Connections
  • metrics.mongodb.go.connections - MongoDB Connections
  • metrics.mongodb.go.queries - MongoDB Queries
  • metrics.mongodb.php.config - MongoDB Configuration Operations
  • metrics.mongodb.php.connections - MongoDB Connections
  • metrics.mongodb.php.driver_operations - MongoDB Driver Operations
  • metrics.mongodb.php.queries - MongoDB Queries
  • metrics.mongodb.python.connections - MongoDB Connections
  • metrics.mongodb.queries - MongoDB Queries
  • metrics.monolog.browser_console - Monolog calls to BrowserConsole
  • metrics.monolog.calls - Monolog calls for warning, notice, info, or debug
  • metrics.monolog.chromephp - Monolog calls to ChromePHP
  • metrics.monolog.firephp - Monolog calls to FirePHP
  • metrics.monolog.php_console - Monolog calls to PHPConsole
  • metrics.nette.installed - Nette framework installed?
  • metrics.network - Network events
  • metrics.network.rpc - Remote procedure calls
  • metrics.network.rpc.call - Make an RPC call
  • metrics.network.rpc.receive_call - Receive an RPC call
  • metrics.network.rpc.receive_response - Receive a response to an RPC call
  • metrics.network.rpc.respond_call - Respond to an RPC call
  • metrics.network.tcp - TCP/IP Communications
  • metrics.network.tcp.dial - Connect to a host
  • metrics.network.tcp.read - Read from a socket
  • metrics.network.tcp.write - Write to a socket
  • metrics.nsq - NSQ
  • metrics.nsq.consume - NSQ Consume
  • metrics.nsq.consume.go - NSQ Consume
  • metrics.nsq.publish - NSQ Publish
  • metrics.nsq.publish.go - NSQ Publish
  • metrics.nsq.response - NSQ Response
  • metrics.nsq.response.go - NSQ Response
  • metrics.output - Written Bytes
  • metrics.oxid.rendered.article.widgets - Oxid Article Widgets Rendered
  • metrics.oxid.rendered.categorytree - Oxid CategoryTree Rendered
  • metrics.oxid.seo.link.generate - Oxid Generate SEO Link
  • metrics.oxid.seo.link.uncached - Oxid Uncached SEO Link
  • metrics.pear.firephp - PEAR log calls to FirePHP
  • metrics.pear.log.log_call - PEAR log calls for warning, notice, info, or debug
  • metrics.php - PHP Functions
  • metrics.php.autoloaded - Autoloaded Classes
  • metrics.php.eval - eval calls
  • metrics.php.fastcgi_finish_request - Response flushes
  • metrics.php.gc - Garbage Collector
  • metrics.php.shell_exec - Spawn shell commands
  • metrics.php.uniqid - uniqid calls
  • metrics.php.uniqid_with_entropy - uniqid with entropy calls
  • metrics.php_markdown.parse.parsedown - Markdown Parser (dflydev/markdown)
  • metrics.phpfastcache.cache.delete - phpFastCache Delete
  • metrics.phpfastcache.cache.flush - phpFastCache Clear
  • metrics.phpfastcache.cache.get - phpFastCache Get
  • metrics.phpfastcache.cache.has - phpFastCache Has
  • metrics.phpfastcache.cache.set - phpFastCache Set
  • metrics.phpqa.deprecated - Calls to deprecated functions
  • metrics.phpqa.die - Calls to die or exit
  • metrics.phpqa.dump - Calls to var_dump(), print_r(), var_export() on STDOUT
  • metrics.phpqa.e_user_deprecated - Calls to deprecated libraries functions
  • metrics.phpqa.eval - Calls to eval
  • metrics.phpqa.ini_settings - Calls to ini_set(), ini_alter(), or ini_restore()
  • metrics.phpqa.set_time_limit - Calls to set_time_limit
  • metrics.phpqa.sleep - Calls to sleep or usleep
  • metrics.prestashop - PrestaShop
  • metrics.prestashop.container.init_dev - Container builder adapter is created in debug mode
  • metrics.prestashop.hook.collection - PrestaShop Hook Data Collector
  • metrics.prestashop.smarty.render_dev - Smarty Dev Mode on PrestaShop
  • metrics.process - Process related events
  • metrics.process.go.run - Run external program
  • metrics.process.php.run - Run external program
  • metrics.process.run - Run external program
  • metrics.propel2 - Propel2 is used
  • metrics.protobuf - Protobuf
  • metrics.protobuf.marshal - Protobuf Marshal
  • metrics.protobuf.marshal.go - Protobuf Marshal
  • metrics.protobuf.unmarshal - Protobuf Unmarshal
  • metrics.protobuf.unmarshal.go - Protobuf Unmarshal
  • metrics.psr3.calls - PSR3 Logger logs
  • metrics.python - Python Standard Library Functions
  • metrics.python.eval - eval functions
  • metrics.python.http.requests - HTTP Requests
  • metrics.python.http.requests.no_tls_verification - no TLS certificate verification done for HTTP requests
  • metrics.python.input_output - IO functions
  • metrics.python.json - Json Encode/Decode
  • metrics.python.logging - logging functions
  • metrics.python.pickle - pickle serialization
  • metrics.python.range - range
  • metrics.python.re - Regular expression functions
  • metrics.python.shell_exec - Spawn shell commands
  • metrics.python.sleep - sleep
  • metrics.python.socket - socket functions
  • metrics.python.ssl.socket - SSL socket functions
  • metrics.python.subprocess.functions.shell_true - Subprocess functions called with shell=True
  • metrics.python.thread - Thread functions
  • metrics.python.yaml.unsafe_load - Unsafe yaml.load
  • metrics.redis - Redis
  • metrics.redis.config - Redis Configuration Operations
  • metrics.redis.connections - Redis Connections
  • metrics.redis.connections.python - Redis Connections
  • metrics.redis.goredis.config - go-redis Configuration Calls
  • metrics.redis.goredis.connections - go-redis Connections
  • metrics.redis.goredis.queries - go-redis Queries
  • metrics.redis.misc - Redis Miscellaneous Operations
  • metrics.redis.non_persistent_connections - Redis Non-Persistent Connections
  • metrics.redis.persistent_connections - Redis Persistent Connections
  • metrics.redis.phpredis.config - PHPRedis Configuration Calls
  • metrics.redis.phpredis.connections - PHPRedis Connections
  • metrics.redis.phpredis.misc - PHPRedis Miscellaneous Operations
  • metrics.redis.phpredis.non_persistent_connections - Redis Non-Persistent Connections
  • metrics.redis.phpredis.persistent_connections - Redis Persistent Connections
  • metrics.redis.phpredis.queries - PHPRedis Queries
  • metrics.redis.predis.connections - Predis Connections
  • metrics.redis.predis.non_persistent_connections - Predis Non-Persistent Connections
  • metrics.redis.predis.persistent_connections - Predis Persistent Connections
  • metrics.redis.predis.queries - Predis Queries
  • metrics.redis.queries - Redis Queries
  • metrics.redis.queries.python - Redis Queries
  • metrics.redis.redigo.connections - redigo Connections
  • metrics.redis.redigo.queries - redigo Queries
  • metrics.riak - Riak
  • metrics.riak.basho.queries - Riak Queries with basho/riak
  • metrics.riak.php_riak.queries - Riak Queries with php_riak
  • metrics.riak.queries - Riak Queries
  • metrics.run - Run Scripts
  • metrics.serializer - Serializers
  • metrics.serializer.deserialize - Deserialize
  • metrics.serializer.serialize - Serialize
  • metrics.shopware.events - Shopware Events
  • metrics.shopware.filtered_events - Shopware Filtered Events
  • metrics.shopware.get_resources - Shopware Resources
  • metrics.shopware.link_generations - Shopware Link Generations
  • metrics.shopware.rendering - Shopware Templates Rendering
  • metrics.shopware.routing - Shopware Routing
  • metrics.shopware6 - Shopware 6
  • metrics.shopware6.admin - Shopware 6 Administration
  • metrics.shopware6.admin_worker - Shopware 6 Admin Worker
  • metrics.shopware6.all.installed - Shopware 6 installed?
  • metrics.shopware6.configuration.read - Shopware 6 Configuration Read
  • metrics.shopware6.context_creation - Shopware 6 Context Creation
  • metrics.shopware6.dal.search - Shopware 6 DAL Search
  • metrics.shopware6.http_cache - Shopware 6 HTTP Cache
  • metrics.shopware6.page.checkout.cart - Shopware 6 Cart Page
  • metrics.shopware6.page.checkout.confirm - Shopware 6 Order Confirm Page
  • metrics.shopware6.page.content - Shopware 6 Content Page
  • metrics.shopware6.page.home - Shopware 6 Home Page
  • metrics.shopware6.page.product - Shopware 6 Product Page
  • metrics.shopware6.plugin.initialization - Shopware 6 Plugin Initialization
  • metrics.shopware6.sales_channel_context_creation - Shopware 6 Sales Channel Context Creation
  • metrics.shopware6.storefront - Shopware 6 Storefront
  • metrics.shopware6.storefront.link_generations - Shopware 6 Storefront Link Generation
  • metrics.shopware6.storefront.product - Shopware 6 Storefront Product
  • metrics.shopware6.storefront.rendering - Shopware 6 Storefront Rendering
  • metrics.shopware6.storefront.routing - Shopware 6 Storefront Routing
  • metrics.silex.application.boot - Silex Application Boot
  • metrics.silex.application.flush - Silex Application Flush Controllers collection
  • metrics.silex.application.mount - Silex Application Mount Controllers
  • metrics.silex.application.terminate - Silex Application Terminate
  • metrics.silex.installed - Silex installed
  • metrics.silex.providers - Silex Providers
  • metrics.slim.installed - Slim installed
  • metrics.smarty - Smarty
  • metrics.smarty.compile - Smarty Templates Compilations
  • metrics.smarty.is_cached - Smarty Templates cache verification
  • metrics.smarty.read_file - Smarty Templates read cached file
  • metrics.smarty.template_base - Smarty Templates render template
  • metrics.solarium.queries - Solarium Queries
  • metrics.spacy - spaCy metrics
  • metrics.spacy.doc - spaCy Doc API
  • metrics.spacy.language - spaCy Language API
  • metrics.spacy.matcher - spaCy Matcher API
  • metrics.spacy.phrasematcher - spaCy PhraseMatcher API
  • metrics.sql - SQL
  • metrics.sql.clickhouse.queries - ClickHouse Queries
  • metrics.sql.connections - SQL Connections
  • metrics.sql.db2.connections - DB2 Connections
  • metrics.sql.db2.queries - DB2 queries
  • metrics.sql.django.queries - SQL Queries
  • metrics.sql.go.queries - SQL Queries
  • metrics.sql.msql.connections - mSQL Connections
  • metrics.sql.msql.queries - mSQL Queries
  • metrics.sql.mssql.connections - MSSQL Connections
  • metrics.sql.mssql.queries - MSSQL Queries
  • metrics.sql.mysql.connections - MySQL Connections
  • metrics.sql.mysql.queries - MySQL Queries
  • metrics.sql.mysqli.connections - MySQLi Connections
  • metrics.sql.mysqli.queries - MySQLi Queries
  • metrics.sql.oci.connections - OCI8 Connections
  • metrics.sql.oci.queries - OCI8 Queries
  • metrics.sql.odbc.connections - ODBC Connections
  • metrics.sql.odbc.queries - ODBC Queries
  • metrics.sql.pdo.connections - PDO Connections
  • metrics.sql.pdo.queries - PDO Queries
  • metrics.sql.postgres.connections - PostgreSQL Connections
  • metrics.sql.postgres.queries - PostgreSQL Queries
  • metrics.sql.psycopg.connections - psycopg Connections
  • metrics.sql.psycopg.queries - psycopg Queries
  • metrics.sql.psycopg2.connections - psycopg2 Connections
  • metrics.sql.pymysql.connections - PyMySQL Connections
  • metrics.sql.pymysql.queries - PyMySQL Queries
  • metrics.sql.queries - SQL Queries
  • metrics.sql.ruby.activerecord.queries - SQL Queries
  • metrics.sql.sqlite.connections - SQLite Connections
  • metrics.sql.sqlite.queries - SQLite Queries
  • metrics.sql.sqlite3.connections - sqlite3 Connections
  • metrics.sql.sqlsrv.connections - SQL Server Connections
  • metrics.sql.sqlsrv.queries - SQL Server Queries
  • metrics.sql.sybase.connections - Sybase Connections
  • metrics.sql.sybase.queries - Sybase Queries
  • metrics.stash.driver.black_hole - Stash Driver BlackHole
  • metrics.stash.driver.file_system - Stash Driver FileSystem
  • metrics.stash.installed - Stash installed?
  • metrics.sylius - Sylius
  • metrics.sylius.events.legacy.sonata - Sylius Legacy Template Events (Calls of `sonata_block_render_event` in `_legacySonataEvent.html.twig`)
  • metrics.sylius.events.sonata - Sylius Sonata Template Events (Calls of `sonata_block_render_event`)
  • metrics.sylius.events.templates - Sylius Template Events (Calls of sylius_template_event)
  • metrics.sylius.installed - Sylius is installed
  • metrics.sylius.version.v1_5 - Sylius Version 1.5
  • metrics.sylius.version.v1_6 - Sylius Version 1.6
  • metrics.sylius.version.v1_7 - Sylius Version 1.7
  • metrics.sylius.version.v1_8 - Sylius Version 1.8
  • metrics.sylius.view.cart - Cart page
  • metrics.sylius.view.homepage - Sylius Homepage
  • metrics.sylius.view.login - Login page
  • metrics.sylius.view.product - Sylius Product page
  • metrics.sylius.view.register - Register page
  • metrics.sylius.view.taxon - Sylius Taxon page
  • metrics.symfony.authentication_provider_manager - Symfony Authentication Provider Manager
  • metrics.symfony.config_check - Symfony Config Cache Freshness Checks
  • metrics.symfony.console - Symfony Console
  • metrics.symfony.console.application_run - Symfony Console Application run
  • metrics.symfony.controllers - Symfony Controllers
  • metrics.symfony.controllers.action - Symfony Controller Action
  • metrics.symfony.controllers.argument_resolver - Symfony Argument Resolving
  • metrics.symfony.controllers.controller_resolver - Symfony Controller Resolving
  • metrics.symfony.debug - Symfony Debug
  • metrics.symfony.dotenv - Symfony Dotenv
  • metrics.symfony.dotenv.parse - Symfony Dotenv Parsing
  • metrics.symfony.events - Symfony Dispatched Events
  • metrics.symfony.firewall - Symfony Firewall
  • metrics.symfony.http_cache - Symfony HTTP Cache
  • metrics.symfony.http_cache_esi - Symfony HTTP Cache ESI
  • metrics.symfony.kernel - Symfony Kernel
  • metrics.symfony.kernel.boot - Symfony Kernel Boot
  • metrics.symfony.kernel.debug - Symfony Kernel Debug
  • metrics.symfony.kernel.handle - Symfony Kernel Handle
  • metrics.symfony.kernel.initialize_bundles - Symfony Kernel bundles initialization
  • metrics.symfony.kernel.initialize_container - Symfony Kernel container initialization
  • metrics.symfony.kernel.load_class_cache - Symfony load classes cache
  • metrics.symfony.kernel.shutdown - Symfony Kernel shutdown
  • metrics.symfony.kernel.terminate - Symfony Kernel terminate
  • metrics.symfony.logger.console - Symfony Console Logger
  • metrics.symfony.logger.monolog_bridge - Symfony Monolog Bridge
  • metrics.symfony.param_converter - Symfony Param Converter
  • metrics.symfony.polyfill - Symfony Polyfills
  • metrics.symfony.polyfill.apcu - Symfony apcu Polyfill
  • metrics.symfony.polyfill.iconv - Symfony iconv Polyfill
  • metrics.symfony.polyfill.intl - Symfony Intl Polyfill
  • metrics.symfony.polyfill.mbstring - Symfony Mbstring Polyfill
  • metrics.symfony.polyfill.php54 - Symfony PHP 5.4 Polyfill
  • metrics.symfony.polyfill.php55 - Symfony PHP 5.5 Polyfill
  • metrics.symfony.polyfill.php56 - Symfony PHP 5.6 Polyfill
  • metrics.symfony.polyfill.php70 - Symfony PHP 7.0 Polyfill
  • metrics.symfony.polyfill.php71 - Symfony PHP 7.1 Polyfill
  • metrics.symfony.polyfill.php72 - Symfony PHP 7.2 Polyfill
  • metrics.symfony.polyfill.php73 - Symfony PHP 7.3 Polyfill
  • metrics.symfony.polyfill.php74 - Symfony PHP 7.4 Polyfill
  • metrics.symfony.polyfill.php80 - Symfony PHP 8.0 Polyfill
  • metrics.symfony.polyfill.php81 - Symfony PHP 8.1 Polyfill
  • metrics.symfony.polyfill.php82 - Symfony PHP 8.2 Polyfill
  • metrics.symfony.polyfill.php83 - Symfony PHP 8.3 Polyfill
  • metrics.symfony.polyfill.xml - Symfony XML Polyfill
  • metrics.symfony.process.cmds - Process Commands
  • metrics.symfony.processes - Process Calls
  • metrics.symfony.routing.loader - Symfony Routing loader
  • metrics.symfony.routing.route_collection - Symfony Routing route collection
  • metrics.symfony.routing.router - Symfony Routing router
  • metrics.symfony.security.access_decision_manager - Symfony Access Decision Manager
  • metrics.symfony.security.authorization_checker - Symfony Authorization Checker
  • metrics.symfony.serializer.decode - Symfony Serializer decode
  • metrics.symfony.serializer.denormalize - Symfony Serializer denormalize
  • metrics.symfony.serializer.deserialize - Symfony Serializer deserialize
  • metrics.symfony.serializer.encode - Symfony Serializer encode
  • metrics.symfony.serializer.normalize - Symfony Serializer normalize
  • metrics.symfony.serializer.serialize - Symfony Serializer serialize
  • metrics.symfony.session_listener - Symfony Session listener
  • metrics.symfony.subrequests - Symfony Subrequests
  • metrics.symfony.yaml.reads - YAML Reads
  • metrics.symfony_framework - Symfony Full Stack Framework
  • metrics.threshold - Significant calls
  • metrics.twig.attributes.ext.get - Twig Attributes Calls with the C Extension
  • metrics.twig.attributes.get - Twig Attributes Calls
  • metrics.twig.attributes.php.get - Twig Attributes Calls from PHP
  • metrics.twig.compile - Twig Template Compilations
  • metrics.twig.display - Twig Template Displays
  • metrics.twig.render - Twig Template Explicit Renders
  • metrics.typo3.application_run - TYPO3 Application Runner
  • metrics.typo3.cache.flush - TYPO3 Cache flush
  • metrics.typo3.cache.get - TYPO3 Cache get
  • metrics.typo3.cache.has - TYPO3 Cache has
  • metrics.typo3.cache.remove - TYPO3 Cache remove
  • metrics.typo3.cache.set - TYPO3 Cache set
  • metrics.typo3.cache.set_cache - TYPO3 Cache cache initialization
  • metrics.typo3.content_object_renderer - TYPO3 Content Object Renderer
  • metrics.typo3.controller - TYPO3 controller
  • metrics.typo3.deprecation_log - TYPO3 deprecationLog calls
  • metrics.typo3.dev_log - TYPO3 devLog calls
  • metrics.typo3.dispatcher - TYPO3 MVC dispatcher
  • metrics.typo3.fe_condition_matcher_match - TYPO3 Condition Matcher
  • metrics.typo3.installed - Is TYPO3 installed?
  • metrics.typo3.int_object - TYPO3 *_INT rendered
  • metrics.typo3.load.configuration - TYPO3 configuration load
  • metrics.typo3.load.ext_loaded - TYPO3 extension loaded
  • metrics.typo3.load.extension_tables - TYPO3 extension tables load
  • metrics.typo3.load.table_configuration_array_load - TYPO3 table configuration array load
  • metrics.typo3.logger - TYPO3 Logger
  • metrics.typo3.mvc_dispatcher - TYPO3 MVC dispatcher
  • metrics.typo3.set_no_cache - Disabling of complete frontend cache
  • metrics.typo3.sql.count - TYPO3 Database Connection count
  • metrics.typo3.sql.delete - TYPO3 Database Connection delete
  • metrics.typo3.sql.insert - TYPO3 Database Connection insert
  • metrics.typo3.sql.select - TYPO3 Database Connection select
  • metrics.typo3.sql.truncate - TYPO3 Database Connection truncate
  • metrics.typo3.sql.update - TYPO3 Database Connection query
  • metrics.typo3.user_object - TYPO3 extensions / plugins rendered
  • metrics.websocket - Web Sockets
  • metrics.websocket.read - Web Sockets Read
  • metrics.websocket.read.go - Web Sockets Read
  • metrics.websocket.write - Web Sockets Write
  • metrics.websocket.write.go - Web Sockets Write
  • metrics.woocommerce.installed - Woocommerce installed?
  • metrics.wordpress - WordPress
  • metrics.wordpress.apply_filters - WordPress apply_filters
  • metrics.wordpress.do_action - WordPress do_action
  • metrics.wordpress.get_footer - WordPress get_footer
  • metrics.wordpress.get_header - WordPress get_header
  • metrics.wordpress.get_sidebar - WordPress get_sidebar
  • metrics.wordpress.get_the_excerpt - WordPress get_the_excerpt
  • metrics.wordpress.i18n.import_i18n - WordPress import i18n
  • metrics.wordpress.load_all_options - WordPress load_all_options
  • metrics.wordpress.load_template - WordPress load_template
  • metrics.wordpress.rewrite_flush_rules - WordPress Rewrite flush rules
  • metrics.wordpress.wp_cache_delete - WordPress wp_cache_delete
  • metrics.wordpress.wp_cache_flush - WordPress wp_cache_flush
  • metrics.wordpress.wp_cache_get - WordPress wp_cache_get
  • metrics.wordpress.wp_cache_set - WordPress wp_cache_set
  • metrics.wordpress.wp_head - WordPress wp_head
  • metrics.wordpress.wp_nav_menu - WordPress wp_nav_menu
  • metrics.wordpress.wp_print_footer_scripts - WordPress wp_print_footer_scripts
  • metrics.wordpress.wp_print_head_scripts - WordPress wp_print_head_scripts
  • metrics.wordpress.wp_print_styles - WordPress wp_print_styles
  • metrics.xdebug - XDebug functions
  • metrics.yii.installed - Yii framework installed?
  • metrics.zend.config_items - Zend Config Reads
  • metrics.zend.front_controller - Zend Front Controller
  • metrics.zend.log.chromephp - Zend Log calls to ChromePHP
  • metrics.zend.log.firephp - Zend Log calls to FirePHP
  • metrics.zend.log.log_call - Zend Log Calls for development levels
  • metrics.zend.reflection - Zend Reflection Uses
  • metrics.zend.resources - Zend Resources Boot
  • metrics.zend.routes - Zend Route Matches
  • metrics.zend.search.lucene.find - ZendSearch Lucene find
  • metrics.zend.table_metadata - Zend Table Metadata Reads
  • metrics.zend.view_renderer - Zend View renderer

By default, Blackfire gives access to a large number of built-in metrics, most of them being specific to the language or popular Open-Source libraries. Based on project requirements, custom metrics can also be defined for a project.

Custom metrics can be defined in a .blackfire.yaml file. They consist in a block under the metrics key:

1
2
3
4
5
6
7
8
9
10
11
12
metrics:
    markdown_to_html:
        # Short label for humans
        label: 'Markdown to HTML'

        # Longer description for humans
        description: 'Metric for Markdown to HTML conversion'

        matching_calls:
            php:
                -
                    callee: "=App\\Utils\\Markdown::toHtml"

Custom metrics can also be defined using the PHP SDK.

Besides the identifier (markdown_to_html), a metric must be associated with function calls, via a metric selector, e.g. =App\Utils\Markdown::toHtml. Several function selectors are available and described below.

To apply stricter constraints, you may combine caller and callee in a single block:

1
2
3
4
5
6
7
metrics:
    markdown_to_html:
        matching_calls:
            php:
                -
                    caller: "=App\\Twig\\AppExtension::markdownToHtml"
                    callee: "=App\\Utils\\Markdown::toHtml"

Caller/callee groups are always considered combined with a boolean AND.

You may chain several blocks of call selectors for a given metric. In that case, these blocks are combined with a boolean OR:

1
2
3
4
5
6
7
8
9
10
metrics:
    markdown_to_html:
        matching_calls:
            php:
                # Each matching call contributes to the total cost of the metric.
                -
                    caller: "=App\\Twig\\AppExtension::markdownToHtml"
                    callee: "=App\\Utils\\Markdown::toHtml"
                -
                    callee: "=App\\Utils\\AlternativeMarkdown::toHtml"

Defining a metric is all about selecting a sub-set of the profile function calls. A selector first character defines how to interpret the rest of the expression:

  • =: Matches the expression exactly;
  • |: Similar to =, but matches any object that is an instance of the class;
  • ^: Matches everything starting with the expression;
  • /: Interprets the expression as a regex that should match;
  • !: Interprets the expression as a regex that should not match.

The second part of the selector defines which function calls to match.

Here are some selector examples:

  • =Class::method: Matches the method function calls on Class;
  • =func: Matches the func function calls;
  • |Psr\Log\LoggerInterface::log: Matches any calls to log on objects that are an instance of Psr\Log\LoggerInterface;
  • ^ArrayObject::: Matches all function calls from the ArrayObject class;
  • ^exif_: Matches all function calls for which the function starts with exif_;
  • /^Class::(method1|method2)$/: Matches method1 and method2 calls from Class;
  • !^spl_autoload_call$!: Matches any function/method calls but spl_autoload_call ones.

Besides matching nodes, a metric can also be used to aggregate function calls by arguments.

Blackfire aggregates all function calls into one node to make it easy to reason about resources it consumed. But sometimes, being able to have different nodes for a function call depending on one or multiple arguments can help if the arguments make the function behave very differently (e.g. a database function call which is very sensitive to the SQL statement to be executed).

Arguments are displayed in the Call Graph and in the Timeline views.

Arguments capturing only works with the = (`equals`) selector.

When defining arguments capturing, you need to determine:

  • Which argument(s) to capture with a 1-based index.

    If the captured argument is a hash map, you may match a specific key: 1.some_key;

  • The selector for each argument to capture. All metric selectors listed above can be used, except |.

    Also, the following selectors are available:

    • ~: Means empty value (or any value representing empty).

      This selector can be combined with any of supported selectors, meaning empty or selector.

      For example, ~= means empty or specified value (e.g. ~=foo means "empty or with foo string).

      Another example is ~^http, meaning empty or beginning with "http" string.

Captured arguments are converted into strings by the probe. As such, only string representations are considered:

  • Booleans are converted to true or false strings;
  • Arrays are converted to [] string;
  • Objects are converted to their FQCN, e.g. App\Foo\Bar.

Captured arguments being strings, | cannot apply as a selector.

As Blackfire displays separate nodes for each unique argument, it is also a great way to better understand how the code behaves (for instance, one node per event for an event dispatcher handle method instead of one big node for all events).

Consider the following class:

1
2
3
4
5
6
7
8
9
10
namespace App\Utils;

class Greetings
{
    public function phrase(string $greeting, string $extra): string
    {
        usleep(500000);
        return sprintf('%s %s', $greeting, $extra);
    }
}

Single argument capture

1
2
3
4
5
6
7
8
9
10
11
metrics:
    greetings:
        label: Greetings phrases
        matching_calls:
            php:
                - callee:
                      selector: "=App\\Utils\\Greetings::phrase"
                      argument:
                          # Using "*" as a "catch-all" selector generates
                          # a different node per argument
                          1: "*"

In this example, $greeting argument is captured and therefore discriminates e.g. Hello from Hi greetings.

Multiple arguments capture

1
2
3
4
5
6
7
8
9
10
11
metrics:
    greetings:
        label: Greetings phrases
        matching_calls:
            php:
                - callee:
                      selector: "=App\\Utils\\Greetings::phrase"
                      argument:
                          # Using Regexp selector.
                          1: "/^(Hello|Hi)/"
                          2: "*"

In this example, $greeting and $extra arguments are both being captured. Different nodes per arguments combination are generated in the callgraph.

Hash map argument capture

Now consider that phrase() method accepts a hash as an argument:

1
2
3
4
5
6
7
8
9
10
namespace App\Utils;

class Greetings
{
    public function phrase(array $greeting): string
    {
        usleep(500000);
        return sprintf('%s %s', $greeting['greetings'], $greeting['phrase']);
    }
}
1
2
3
4
5
6
7
8
9
10
11
metrics:
    greetings:
        label: Greetings phrases
        matching_calls:
            php:
                - callee:
                      selector: "=App\\Utils\\Greetings::phrase"
                      argument:
                          # Capture is based on hash map keys.
                          1.greetings: "/^(Hello|Hi)/"
                          1.phrase: "*"

In this example, the capture is based on the hash map keys. 1.greetings means "value from greetings key of the first argument", assuming this argument is an actual hash map.

Named (or keyword) arguments capture

It is possible to capture arguments by their names with the following languages:

  • Python:
1
2
3
4
def greeting_phrase(greeting, extra=""):
    return f'{greeting} {extra}'

greeting_phrase(greeting='Hello', extra='World')
1
2
3
4
5
6
7
8
9
10
11
metrics:
    greetings:
        label: Greetings phrases
        matching_calls:
            python:
                - callee:
                      selector: "=greeting_phrase"
                      argument:
                          # Capturing kwargs
                          greeting: "*"
                          extra: "*"
  • PHP (>=7.0):
1
2
3
4
5
6
7
8
9
10
11
function soup(string $vegetable, string $spice = 'no spice', string $cheese = 'no cheese'): string {
    usleep(1000);
    $recipe = "Making soup with $vegetable, $spice and $cheese";

    return "$recipe\n";
}

echo soup('carrot', 'saffron', 'kiri');
echo soup('cucumber', 'mint');
// Using PHP 8 named arguments.
echo soup(cheese: 'gruyere', vegetable: 'onion');
1
2
3
4
5
6
7
8
9
10
metrics:
    soup:
        label: My Yummy Soup
        matching_calls:
            php:
                - callee:
                    selector: '=soup'
                    argument:
                        vegetable: '*'
                        spice: '*'

Custom metrics can be used in assertions like any other metrics: the name is made of the metrics. prefix, then the metric name (cache.write in our example), and it ends with one of the available dimensions (.peak_memory in the example):

1
"metrics.cache.write.peak_memory < 10mb"

As a matter of fact, built-in metrics are defined in the exact same way as custom ones.

In the timeline view, all captured metrics are displayed as blocks, positioned with time offsets. In the left pane, all metrics are listed and split into 2 groups: Metrics and Other Metrics.

Metrics, on the top, gather featured metrics which are called Layers. These layers can result from a combination of different metrics, e.g. markdown being a global layer composed of markdown.parse.parsedown, php_markdown.parse.parsedown, and commonmark.parse.parsedown.

Other Metrics represent every other metrics which have been captured.

To add your metrics to the timeline, you need to set the timeline option to true:

1
2
3
4
5
6
7
8
9
metrics:
    markdown_to_html:
        label: 'Markdown to HTML'
        layer: ~
        timeline: true
        matching_calls:
            php:
                -
                    callee: "=App\\Utils\\Markdown::toHtml"

The example above adds the markdown_to_html metric to the timeline view. Setting layer to ~ makes this metric to be considered as a layer itself.

It is possible to add Timeline Markers directly from a metric, avoiding using the Probe SDK.

In the following example, each time the App\Utils\Markdown::toHtml is called, a marker with the label Markdown to HTML is added to the timeline.

1
2
3
4
5
6
7
8
metrics:
    markdown_to_html:
        label: 'Mardown to HTML'
        marker: 'Markdown to HTML Timeline Marker'
        matching_calls:
            php:
                -
                    callee: "=App\\Utils\\Markdown::toHtml"

When using argument capturing, it is possible to interpolate the argument's value within the marker label:

1
2
3
4
5
6
7
8
9
10
11
12
metrics:
    greetings:
        label: 'Markdown to HTML'
        # Interpolates the value of the first argument in the marker label.
        marker: 'Greetings - ${1}'
        matching_calls:
            php:
                -
                    callee:
                        selector: "=App\\Utils\\Greetings::phrase"
                        argument:
                            1: "*"

The trick to defining a new layer is to declare it and reference it to itself in the layer key. The following example shows how to define layers in order to group metrics under them:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
metrics:

    # Main layer, will gather dimensions from all attached metrics.
    markdown:
        label: "Markdown"
        # Self referencing metrics are layers.
        layer: markdown
        timeline: true

    # Sub-layer
    markdown.parse:
        label: "Markdown Parser"
        layer: markdown

    markdown.parse.parsedown:
        label: "Markdown Parser (erusev/parsedown)"
        # The layer this metric contributes to.
        layer: markdown.parse
        matching_calls:
            php:
                - callee: "=Parsedown::text"

    php_markdown.parse.parsedown:
        label: "Markdown Parser (dflydev/markdown)"
        # The layer this metric contributes to.
        layer: markdown.parse
        matching_calls:
            php:
                - callee: "=dflydev\\markdown\\MarkdownParser::transform"
                  caller: "!^dflydev\\\\markdown\\\\MarkdownParser::transformMarkdown!"
                - callee: "=dflydev\\markdown\\MarkdownParser::transformMarkdown"

By default, all dimensions are contributed for each metric. It is however possible to specify if a given call contributes for its cost, its count, or a combination of both. These contribution types are displayed when hovering a metric name in the timeline view.

This can be specified in the contrib key for each matching call block. Available values are:

  • count+cost: The default value; gathers both count and cost dimensions;
  • count-only: Makes the function call contribute its number of calls only;
  • cost-only: Makes the function call contribute its cost dimensions only.
1
2
3
4
5
6
7
8
9
metrics:
    markdown_to_html:
        label: 'Markdown to HTML'
        layer: ~
        matching_calls:
            php:
                -
                    callee: "=App\\Utils\\Markdown::toHtml"
                    contrib: count-only
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
metrics:
    # Prototype
    metric_identifier:
        label:                ~
        description:          ~
        layer:                null
        timeline:             null
        matching_calls:
            php:
                contrib:              count+cost # One of "count+cost"; "cost-only"; "count-only"
                caller:
                    selector:             []
                    argument:             []
                callee:               # Required
                    selector:             []
                    argument:             []