Skip to content

Martini Services Tracker Document Structure

Tracker Document

In Martini, entries within the Tracker module are referred to as documents. These documents are essential for monitoring service invocations, logging, and tracking the state changes over time. Each document is identified by a set of fields designed to capture detailed information about each service invocation or process being monitored.

Document Fields

Documents within the Tracker search index are defined by specific fields, each with its unique purpose and data type. The following table outlines these fields, their Java data types, descriptions, and corresponding SQL storage details:

Field Name Java Data Type Description SQL Table SQL Column SQL Data Type
internalId String A unique identifier assigned by Tracker to distinguish documents. Used for retrieving and updating documents. toro_tracker_document internal_id VARCHAR(40)
externalId String A user-assignable unique identifier for service invocations, differing by time or other criteria. Defaults to the Unix time at service call. toro_tracker_document external_id VARCHAR(40)
type Type Specifies the application associated with the document, defaulting to the Martini endpoint type for HTTP-invoked services. toro_tracker_document doc_type_id VARCHAR(100)
stateName String Identifies the trigger source of the call, such as an IP address or Martini endpoint. toro_tracker_document sender_id VARCHAR(255)
senderId String Similar to stateName, specifies the system, user, or address initiating the call. toro_tracker_document sender_id VARCHAR(255)
receiverId String The system, user, or address that is the target of the invocation. toro_tracker_document receiver_id VARCHAR(255)
userName String The name of the user who initiated the call, or "Anonymous" if not identified. toro_tracker_document user_name VARCHAR(150)
timestamp long The creation time of the document in Tracker. toro_tracker_document time_received TIMESTAMP
logs Collection<Log> Associated log messages for the document. toro_tracker_document_log N/A N/A
properties Collection<Property> Custom key-value pairs associated with the document. toro_tracker_document_property N/A N/A
states Collection<State> The list of states the document has been through. toro_tracker_document_state N/A N/A
children Collection<String> Identifies documents where the current document is a child in a parent-child relationship. toro_tracker_document_relationship N/A N/A
parents Collection<String> Identifies documents where the current document is a parent in a parent-child relationship. toro_tracker_document_relationship N/A N/A

Working with Document Objects

Internally, Tracker documents are represented as Document objects. To interact with these documents programmatically, such as fetching, updating, or adding new logs, properties, or states, developers will utilize the getter and setter methods of the Document class.

Customizable Field Values

While Martini automatically populates document fields with default values, these values can be overridden to align with organizational preferences. This customization allows for a more tailored tracking and monitoring experience within the Tracker module.

Document Types

Document types in Martini act as tags for services, facilitating the organization and searchability of service invocations. They play a crucial role in categorizing services in a way that enhances the efficiency of tracking and monitoring within the Tracker module.

Default Document Types

When a service is invoked, if no document type has been explicitly assigned, Tracker automatically generates one. The default document type assigned by Tracker varies depending on the method of service invocation:

  • Endpoints: The default document type is determined by the type of endpoint.
  • Groovy-based Spring Web Services, API Endpoints, and Ad Hoc Service Endpoints: The default document type is derived from the leading path of the URL used to invoke the service.

These defaults ensure that even without manual tagging, services are logically grouped and can be easily identified and retrieved.

Representation and Fields

Document types are internally represented by Type objects, which are structured with specific fields to store and describe the document type's characteristics. The table below outlines the fields associated with document types:

Field Name Java Data Type Description SQL Table SQL Column SQL Data Type
id String A unique identifier for the document type. toro_tracker_document_type doc_type_id VARCHAR(100)
name String The descriptive name of the document type. toro_tracker_document_type doc_type_name VARCHAR(100)

These fields allow for detailed definition and categorization of document types, making it easier to manage and query documents within the Tracker.

Log Messages

In the context of service monitoring and troubleshooting within Martini, log messages play a vital role in capturing detailed information about service invocations. These messages provide insights into the behavior and condition of services at specific points in time, facilitating debugging and analysis.

Log Object Structure

Log messages in Martini are encapsulated within Log objects. Each Log object comprises several fields, each designed to capture and convey specific aspects of the log message. The table below details these fields, including their data types and storage considerations:

Field Name Java Data Type Description SQL Table SQL Column SQL Data Type
id Long A unique identifier for the log message. toro_tracker_document_log document_log_id INT(10)
timeReceived long The timestamp when the message was logged. toro_tracker_document_log time_received TIMESTAMP
type String The category or type of log message. toro_tracker_document_log log_type VARCHAR(10)
message String The actual content of the log message. toro_tracker_document_log log_message VARCHAR(1024)

Field Descriptions

  • id: Serves as the primary key for each log message, ensuring that every log entry can be uniquely identified.
  • timeReceived: Indicates the exact moment the log message was created, which is crucial for chronological troubleshooting and analysis.
  • type: Categorizes the log message into different types (e.g., INFO, ERROR, DEBUG), allowing for easier sorting and filtering based on severity or purpose.
  • message: Contains the descriptive text of the log message, providing details about the service invocation's condition, errors encountered, or other relevant information.

Properties

Properties serve as key-value pairs that enrich documents with additional or custom information. These properties are instrumental in providing context, details, and metadata associated with a document, thereby enhancing its descriptive capacity beyond the standard fields.

Structure of Properties

Properties are represented as simple key-value pairs, where each pair consists of a unique key and its corresponding value. This structure allows for flexible and dynamic association of information with documents. The table below outlines the fields that define a property:

Field Name Data Type Description SQL Table SQL Column SQL Data Type
key String The name of the property, acting as a unique identifier. toro_tracker_document_property property_key VARCHAR(30)
value String The value associated with the key, providing specific information or context. toro_tracker_document_property property_value VARCHAR(100)

Field Descriptions

  • key: Serves as the identifier for the property. It is a unique string that specifies the nature or category of the information being stored.
  • value: Contains the actual data or information associated with the key. The value provides the specific detail or context for the property key.

States

The concept of "states" is used to track the lifecycle of a document through the service invocation process. States provide a chronological record of the various phases a service invocation undergoes, from initiation to completion, including any errors encountered along the way. This feature is key to understanding the progression and outcome of service invocations within Martini.

State Object Structure

States are encapsulated within State objects, each representing a specific point in the service invocation process. The following table details the fields within a State object, including their data types and descriptions:

Field Name Data Type Description SQL Table SQL Column SQL Data Type
id Long A unique identifier for the state, auto-generated by Martini. toro_tracker_document_state document_state_id INT(10)
name String The name of the state, indicating its role or phase in the invocation process. toro_tracker_document_state state_name VARCHAR(50)
timeReceived long The timestamp marking when this state was recorded. toro_tracker_document_state time_received TIMESTAMP
canBeResubmitted boolean N/A N/A N/A N/A
contentFileName String N/A N/A N/A N/A
contentSize long N/A N/A N/A N/A
indexed boolean N/A N/A N/A N/A