|
PACS System 0.1.0
PACS DICOM system library
|
CRTP base class for DICOM metric collectors. More...
#include <dicom_collector_base.h>


Public Member Functions | |
| dicom_collector_base ()=default | |
| virtual | ~dicom_collector_base ()=default |
| dicom_collector_base (const dicom_collector_base &)=delete | |
| dicom_collector_base & | operator= (const dicom_collector_base &)=delete |
| dicom_collector_base (dicom_collector_base &&)=delete | |
| dicom_collector_base & | operator= (dicom_collector_base &&)=delete |
| bool | initialize (const config_map &config) |
| Initialize the collector with configuration. | |
| std::vector< dicom_metric > | collect () |
| Collect metrics from the data source. | |
| std::string | get_name () const |
| Get the name of this collector. | |
| std::vector< std::string > | get_metric_types () const |
| Get supported metric types. | |
| bool | is_healthy () const |
| Check if the collector is healthy. | |
| stats_map | get_statistics () const |
| Get collector statistics. | |
| bool | is_enabled () const |
| Check if collector is enabled. | |
| std::size_t | get_collection_count () const |
| Get collection count. | |
| std::size_t | get_collection_errors () const |
| Get error count. | |
| std::string | get_ae_title () const |
| Get the AE title. | |
| void | set_ae_title (std::string ae_title) |
| Set the AE title. | |
Protected Member Functions | |
| dicom_metric | create_base_metric (const std::string &name, double value, const std::string &type, const std::unordered_map< std::string, std::string > &extra_tags={}) const |
| Create a metric with common tags. | |
Protected Attributes | |
| bool | enabled_ {true} |
| std::string | ae_title_ {"PACS_SCP"} |
| std::mutex | stats_mutex_ |
| std::atomic< std::size_t > | collection_count_ {0} |
| std::atomic< std::size_t > | collection_errors_ {0} |
| std::chrono::steady_clock::time_point | init_time_ |
| std::chrono::system_clock::time_point | last_collection_time_ |
Private Member Functions | |
| Derived & | derived () |
| Get reference to derived class (CRTP helper) | |
| const Derived & | derived () const |
CRTP base class for DICOM metric collectors.
This template class implements common functionality shared by all DICOM collectors:
Usage:
| Derived | The derived collector class (CRTP pattern) |
Definition at line 104 of file dicom_collector_base.h.
|
default |
|
virtualdefault |
|
delete |
|
delete |
|
inline |
Collect metrics from the data source.
Definition at line 142 of file dicom_collector_base.h.
References kcenon::pacs::monitoring::dicom_collector_base< Derived >::collection_count_, kcenon::pacs::monitoring::dicom_collector_base< Derived >::collection_errors_, kcenon::pacs::monitoring::dicom_collector_base< Derived >::derived(), kcenon::pacs::monitoring::dicom_collector_base< Derived >::enabled_, and kcenon::pacs::monitoring::dicom_collector_base< Derived >::last_collection_time_.

|
inlinenodiscardprotected |
Create a metric with common tags.
| name | Metric name |
| value | Metric value |
| type | Metric type ("gauge", "counter", "histogram") |
| extra_tags | Additional tags to include |
Definition at line 254 of file dicom_collector_base.h.
|
inlineprivate |
Get reference to derived class (CRTP helper)
Definition at line 284 of file dicom_collector_base.h.
Referenced by kcenon::pacs::monitoring::dicom_collector_base< Derived >::collect(), kcenon::pacs::monitoring::dicom_collector_base< Derived >::get_metric_types(), kcenon::pacs::monitoring::dicom_collector_base< Derived >::get_statistics(), kcenon::pacs::monitoring::dicom_collector_base< Derived >::initialize(), and kcenon::pacs::monitoring::dicom_collector_base< Derived >::is_healthy().

|
inlineprivate |
Definition at line 285 of file dicom_collector_base.h.
|
inlinenodiscard |
Get the AE title.
Definition at line 237 of file dicom_collector_base.h.
References kcenon::pacs::monitoring::dicom_collector_base< Derived >::ae_title_.
|
inlinenodiscard |
Get collection count.
Definition at line 221 of file dicom_collector_base.h.
References kcenon::pacs::monitoring::dicom_collector_base< Derived >::collection_count_.
|
inlinenodiscard |
Get error count.
Definition at line 229 of file dicom_collector_base.h.
References kcenon::pacs::monitoring::dicom_collector_base< Derived >::collection_errors_.
|
inlinenodiscard |
Get supported metric types.
Definition at line 170 of file dicom_collector_base.h.
References kcenon::pacs::monitoring::dicom_collector_base< Derived >::derived().

|
inlinenodiscard |
Get the name of this collector.
Definition at line 162 of file dicom_collector_base.h.
|
inlinenodiscard |
Get collector statistics.
Definition at line 189 of file dicom_collector_base.h.
References kcenon::pacs::monitoring::dicom_collector_base< Derived >::collection_count_, kcenon::pacs::monitoring::dicom_collector_base< Derived >::collection_errors_, kcenon::pacs::monitoring::dicom_collector_base< Derived >::derived(), kcenon::pacs::monitoring::dicom_collector_base< Derived >::enabled_, kcenon::pacs::monitoring::dicom_collector_base< Derived >::init_time_, and kcenon::pacs::monitoring::dicom_collector_base< Derived >::stats_mutex_.

|
inline |
Initialize the collector with configuration.
| config | Configuration options
|
Definition at line 122 of file dicom_collector_base.h.
References kcenon::pacs::monitoring::dicom_collector_base< Derived >::ae_title_, kcenon::pacs::monitoring::dicom_collector_base< Derived >::derived(), kcenon::pacs::monitoring::dicom_collector_base< Derived >::enabled_, and kcenon::pacs::monitoring::dicom_collector_base< Derived >::init_time_.

|
inlinenodiscard |
Check if collector is enabled.
Definition at line 215 of file dicom_collector_base.h.
References kcenon::pacs::monitoring::dicom_collector_base< Derived >::enabled_.
|
inlinenodiscard |
Check if the collector is healthy.
Definition at line 178 of file dicom_collector_base.h.
References kcenon::pacs::monitoring::dicom_collector_base< Derived >::derived(), and kcenon::pacs::monitoring::dicom_collector_base< Derived >::enabled_.

|
delete |
|
delete |
|
inline |
Set the AE title.
| ae_title | Application Entity title |
Definition at line 243 of file dicom_collector_base.h.
References kcenon::pacs::monitoring::dicom_collector_base< Derived >::ae_title_.
|
protected |
Definition at line 271 of file dicom_collector_base.h.
Referenced by kcenon::pacs::monitoring::dicom_collector_base< Derived >::get_ae_title(), kcenon::pacs::monitoring::dicom_collector_base< Derived >::initialize(), and kcenon::pacs::monitoring::dicom_collector_base< Derived >::set_ae_title().
|
protected |
Definition at line 275 of file dicom_collector_base.h.
Referenced by kcenon::pacs::monitoring::dicom_collector_base< Derived >::collect(), kcenon::pacs::monitoring::dicom_collector_base< Derived >::get_collection_count(), and kcenon::pacs::monitoring::dicom_collector_base< Derived >::get_statistics().
|
protected |
Definition at line 276 of file dicom_collector_base.h.
Referenced by kcenon::pacs::monitoring::dicom_collector_base< Derived >::collect(), kcenon::pacs::monitoring::dicom_collector_base< Derived >::get_collection_errors(), and kcenon::pacs::monitoring::dicom_collector_base< Derived >::get_statistics().
|
protected |
Definition at line 270 of file dicom_collector_base.h.
Referenced by kcenon::pacs::monitoring::dicom_collector_base< Derived >::collect(), kcenon::pacs::monitoring::dicom_collector_base< Derived >::get_statistics(), kcenon::pacs::monitoring::dicom_collector_base< Derived >::initialize(), kcenon::pacs::monitoring::dicom_collector_base< Derived >::is_enabled(), and kcenon::pacs::monitoring::dicom_collector_base< Derived >::is_healthy().
|
protected |
Definition at line 277 of file dicom_collector_base.h.
Referenced by kcenon::pacs::monitoring::dicom_collector_base< Derived >::get_statistics(), and kcenon::pacs::monitoring::dicom_collector_base< Derived >::initialize().
|
protected |
Definition at line 278 of file dicom_collector_base.h.
Referenced by kcenon::pacs::monitoring::dicom_collector_base< Derived >::collect().
|
mutableprotected |
Definition at line 274 of file dicom_collector_base.h.
Referenced by kcenon::pacs::monitoring::dicom_collector_base< Derived >::get_statistics().