pub struct RiLogAnalyticsModule { /* private fields */ }Expand description
Log analytics module for Ri.
This module implements the ServiceModule trait and provides analytics functionality
by listening to hook events and generating comprehensive reports.
§Usage
The module is automatically added by the RiAppBuilder and doesn’t need to be explicitly
configured in most cases. It can be enabled/disabled through the configuration file.
§Configuration
analytics:
enabled: true # Enable or disable analyticsImplementations§
Trait Implementations§
Source§impl Default for RiLogAnalyticsModule
impl Default for RiLogAnalyticsModule
Source§impl<'py> IntoPyObject<'py> for RiLogAnalyticsModule
impl<'py> IntoPyObject<'py> for RiLogAnalyticsModule
Source§type Target = RiLogAnalyticsModule
type Target = RiLogAnalyticsModule
Source§type Output = Bound<'py, <RiLogAnalyticsModule as IntoPyObject<'py>>::Target>
type Output = Bound<'py, <RiLogAnalyticsModule as IntoPyObject<'py>>::Target>
Source§fn into_pyobject(
self,
py: Python<'py>,
) -> Result<<Self as IntoPyObject<'_>>::Output, <Self as IntoPyObject<'_>>::Error>
fn into_pyobject( self, py: Python<'py>, ) -> Result<<Self as IntoPyObject<'_>>::Output, <Self as IntoPyObject<'_>>::Error>
Source§impl PyClass for RiLogAnalyticsModule
impl PyClass for RiLogAnalyticsModule
Source§impl PyClassImpl for RiLogAnalyticsModule
impl PyClassImpl for RiLogAnalyticsModule
Source§const IS_BASETYPE: bool = false
const IS_BASETYPE: bool = false
Source§const IS_SUBCLASS: bool = false
const IS_SUBCLASS: bool = false
Source§const IS_MAPPING: bool = false
const IS_MAPPING: bool = false
Source§const IS_SEQUENCE: bool = false
const IS_SEQUENCE: bool = false
Source§const IS_IMMUTABLE_TYPE: bool = false
const IS_IMMUTABLE_TYPE: bool = false
Source§const RAW_DOC: &'static CStr = c"Log analytics module for Ri.\n\nThis module implements the `ServiceModule` trait and provides analytics functionality\nby listening to hook events and generating comprehensive reports.\n\n## Usage\n\nThe module is automatically added by the `RiAppBuilder` and doesn\'t need to be explicitly\nconfigured in most cases. It can be enabled/disabled through the configuration file.\n\n## Configuration\n\n```yaml\nanalytics:\n enabled: true # Enable or disable analytics\n```\x00"
const RAW_DOC: &'static CStr = c"Log analytics module for Ri.\n\nThis module implements the `ServiceModule` trait and provides analytics functionality\nby listening to hook events and generating comprehensive reports.\n\n## Usage\n\nThe module is automatically added by the `RiAppBuilder` and doesn\'t need to be explicitly\nconfigured in most cases. It can be enabled/disabled through the configuration file.\n\n## Configuration\n\n```yaml\nanalytics:\n enabled: true # Enable or disable analytics\n```\x00"
Source§const DOC: &'static CStr
const DOC: &'static CStr
text_signature if a constructor is defined. Read moreSource§type ThreadChecker = SendablePyClass<RiLogAnalyticsModule>
type ThreadChecker = SendablePyClass<RiLogAnalyticsModule>
Source§type PyClassMutability = <<PyAny as PyClassBaseType>::PyClassMutability as PyClassMutability>::MutableChild
type PyClassMutability = <<PyAny as PyClassBaseType>::PyClassMutability as PyClassMutability>::MutableChild
Source§type BaseNativeType = PyAny
type BaseNativeType = PyAny
PyAny by default, and when you declare
#[pyclass(extends=PyDict)], it’s PyDict.fn items_iter() -> PyClassItemsIter
fn lazy_type_object() -> &'static LazyTypeObject<Self>
fn dict_offset() -> Option<isize>
fn weaklist_offset() -> Option<isize>
Source§impl PyTypeInfo for RiLogAnalyticsModule
impl PyTypeInfo for RiLogAnalyticsModule
Source§fn type_object_raw(py: Python<'_>) -> *mut PyTypeObject
fn type_object_raw(py: Python<'_>) -> *mut PyTypeObject
§fn type_object(py: Python<'_>) -> Bound<'_, PyType>
fn type_object(py: Python<'_>) -> Bound<'_, PyType>
§fn is_type_of(object: &Bound<'_, PyAny>) -> bool
fn is_type_of(object: &Bound<'_, PyAny>) -> bool
object is an instance of this type or a subclass of this type.§fn is_exact_type_of(object: &Bound<'_, PyAny>) -> bool
fn is_exact_type_of(object: &Bound<'_, PyAny>) -> bool
object is an instance of this type.Source§impl ServiceModule for RiLogAnalyticsModule
impl ServiceModule for RiLogAnalyticsModule
Source§fn name(&self) -> &str
fn name(&self) -> &str
Returns the name of the analytics module.
This name is used for identification, logging, and dependency resolution.
Source§fn is_critical(&self) -> bool
fn is_critical(&self) -> bool
Indicates if the analytics module is critical to the operation of the system.
The analytics module is non-critical, meaning it can fail without causing the entire system to fail.
Source§fn init(&mut self, ctx: &mut RiServiceContext) -> RiResult<()>
fn init(&mut self, ctx: &mut RiServiceContext) -> RiResult<()>
Initializes the analytics module.
This method:
- Reads the analytics configuration from the service context
- Enables or disables the module based on configuration
- Registers hook handlers if the module is enabled
§Parameters
ctx: The service context containing configuration and hooks
§Returns
A RiResult indicating success or failure
Source§fn after_shutdown(&mut self, ctx: &mut RiServiceContext) -> RiResult<()>
fn after_shutdown(&mut self, ctx: &mut RiServiceContext) -> RiResult<()>
Flushes analytics data after the application has shutdown.
This method generates a final analytics report and writes it to a file after all modules have been shutdown.
§Parameters
ctx: The service context containing file system and logging capabilities
§Returns
A RiResult indicating success or failure
Source§fn before_start(&mut self, _ctx: &mut RiServiceContext) -> RiResult<()>
fn before_start(&mut self, _ctx: &mut RiServiceContext) -> RiResult<()>
Source§fn start(&mut self, _ctx: &mut RiServiceContext) -> RiResult<()>
fn start(&mut self, _ctx: &mut RiServiceContext) -> RiResult<()>
Source§fn after_start(&mut self, _ctx: &mut RiServiceContext) -> RiResult<()>
fn after_start(&mut self, _ctx: &mut RiServiceContext) -> RiResult<()>
Source§fn before_shutdown(&mut self, _ctx: &mut RiServiceContext) -> RiResult<()>
fn before_shutdown(&mut self, _ctx: &mut RiServiceContext) -> RiResult<()>
impl DerefToPyAny for RiLogAnalyticsModule
impl ExtractPyClassWithClone for RiLogAnalyticsModule
Auto Trait Implementations§
impl Freeze for RiLogAnalyticsModule
impl RefUnwindSafe for RiLogAnalyticsModule
impl Send for RiLogAnalyticsModule
impl Sync for RiLogAnalyticsModule
impl Unpin for RiLogAnalyticsModule
impl UnsafeUnpin for RiLogAnalyticsModule
impl UnwindSafe for RiLogAnalyticsModule
Blanket Implementations§
§impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
§impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere
T: 'a,
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more§impl<'py, T> IntoPyObjectExt<'py> for Twhere
T: IntoPyObject<'py>,
impl<'py, T> IntoPyObjectExt<'py> for Twhere
T: IntoPyObject<'py>,
§fn into_bound_py_any(self, py: Python<'py>) -> Result<Bound<'py, PyAny>, PyErr>
fn into_bound_py_any(self, py: Python<'py>) -> Result<Bound<'py, PyAny>, PyErr>
self into an owned Python object, dropping type information.§fn into_py_any(self, py: Python<'py>) -> Result<Py<PyAny>, PyErr>
fn into_py_any(self, py: Python<'py>) -> Result<Py<PyAny>, PyErr>
self into an owned Python object, dropping type information and unbinding it
from the 'py lifetime.§fn into_pyobject_or_pyerr(self, py: Python<'py>) -> Result<Self::Output, PyErr>
fn into_pyobject_or_pyerr(self, py: Python<'py>) -> Result<Self::Output, PyErr>
self into a Python object. Read moreSource§impl<T> IntoRequest<T> for T
impl<T> IntoRequest<T> for T
Source§fn into_request(self) -> Request<T>
fn into_request(self) -> Request<T>
T in a tonic::RequestSource§impl<T> IntoRequest<T> for T
impl<T> IntoRequest<T> for T
Source§fn into_request(self) -> Request<T>
fn into_request(self) -> Request<T>
T in a tonic::Request§impl<T> Pointable for T
impl<T> Pointable for T
§impl<T> PyErrArguments for T
impl<T> PyErrArguments for T
§impl<T> PyTypeCheck for Twhere
T: PyTypeInfo,
impl<T> PyTypeCheck for Twhere
T: PyTypeInfo,
§const NAME: &'static str = T::NAME
const NAME: &'static str = T::NAME
§fn type_check(object: &Bound<'_, PyAny>) -> bool
fn type_check(object: &Bound<'_, PyAny>) -> bool
§fn classinfo_object(py: Python<'_>) -> Bound<'_, PyAny>
fn classinfo_object(py: Python<'_>) -> Bound<'_, PyAny>
isinstance and issubclass function. Read more