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:
true
or false
strings;[]
string;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:
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: "*"
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: []