OIC Activity Stream
Relevant source files
The following files were used as context for generating this wiki page:
The OIC Activity Stream is a specialized monitoring module within the Oracle Integration Cloud (OIC) Singer tap designed to capture and synchronize execution records and performance metrics from an OIC instance. It enables incremental replication of activity data, providing visibility into integration statuses, message processing volumes, and throughput performance.
Sources: src/flext_tap_oracle_oic/_models/_activity.py:1-18, src/flext_tap_oracle_oic/models.py:100-110
Data Model: OicActivityRecord
The core of the activity stream is the OicActivityRecord class. This model tracks individual integration instance activities, including temporal data and success metrics. It is used for incremental replication to ensure that only new or updated activities are extracted during subsequent tap runs.
Key Fields and Attributes
| Field | Type | Description |
|---|---|---|
activity_id | str | Unique identifier for the activity record. |
integration_id | str | The ID of the associated integration. |
instance_id | str | The specific execution instance ID. |
start_time | datetime | Timestamp when the activity began. |
end_time | datetime | None | Timestamp when the activity ended. |
status | OicJobStatus | The execution status (e.g., COMPLETED, FAILED). |
messages_processed | int | None | Count of messages handled during the activity. |
throughput_mps | float | None | Throughput measured in messages per second. |
Sources: src/flext_tap_oracle_oic/_models/_activity.py:46-115
Activity Performance Summary
The model includes a computed property, activity_performance_summary, which sections data into logical groups for downstream analysis, including identity, performance, quality, and volume metrics.
@u.computed_field()
@property
def activity_performance_summary(self) -> t.TapOracleOic.SectionedSummary:
duration_seconds = 0.0
if self.duration_ms:
duration_seconds = self.duration_ms / 1000
# ... returns sectioned dictionary ...
Sources: src/flext_tap_oracle_oic/_models/_activity.py:117-152
Architecture and Data Flow
The Activity Stream follows the standard Singer tap pattern for OIC, utilizing a base stream class that handles endpoint discovery, authentication, and pagination.
Activity Flow Diagram
The following diagram illustrates how activity records are fetched and processed from the OIC Monitoring API.
The flow shows the iterative process of requesting monitoring data from the OIC API and converting it into validated activity records.
Sources: src/flext_tap_oracle_oic/models.py:133-165, src/flext_tap_oracle_oic/tap_streams.py:35-50
Stream Configuration
The activity stream behavior is governed by the OicStreamConfiguration. This allows users to define the replication method and filters for the monitoring data.
Configuration Options
- Replication Method: Supports
FULL_TABLEorINCREMENTAL. For activity streams,INCREMENTALis typically used withstart_timeorlast_updatedas the replication key. - Pagination: Uses a
page_size(default 100, max 1000) to control API request density. - Filtering: Can be filtered by
status_filter(e.g., only failed jobs) anddate_range_filter.
Sources: src/flext_tap_oracle_oic/_models/_stream_config.py:16-75, src/flext_tap_oracle_oic/constants.py:53-65
API Integration and Pagination
The Activity Stream interacts with the OIC Monitoring API. The base stream implementation automatically switches to the monitoring path when the api_category is set to "monitoring".
API Endpoint Resolution
The system constructs the URL dynamically based on the OCI region and the API category:
- Monitoring Path:
/ic/api/monitoring/v1 - Default Base Path:
/ic/api/integration/v1
Sources: src/flext_tap_oracle_oic/models.py:186-215, src/flext_tap_oracle_oic/constants.py:37-40
Adaptive Pagination
The FlextTapOracleOicPaginator handles OIC-specific pagination using limit and offset parameters. It includes logic to calculate the next offset based on the number of items returned in the OicEnvelope.
The sequence diagram demonstrates the offset-based pagination mechanism used to traverse large volumes of activity records.
Sources: src/flext_tap_oracle_oic/tap_streams.py:35-78, src/flext_tap_oracle_oic/utilities.py:348-375
Operational Statuses
Activity records use standardized job statuses defined in the tap constants. These statuses indicate the final state of an integration activity.
| Status | Description |
|---|---|
COMPLETED | The activity finished successfully. |
FAILED | The activity encountered a fatal error. |
RUNNING | The activity is currently in progress. |
ABORTED | The activity was manually terminated. |
Sources: src/flext_tap_oracle_oic/constants.py:88-95
Conclusion
The OIC Activity Stream provides a robust framework for monitoring Oracle Integration Cloud health and performance. By leveraging the OicActivityRecord model and adaptive pagination, the system ensures efficient and accurate data extraction suitable for high-volume enterprise environments.