/
Topic analysis in CPS and NCMP for Capacity Planning

Topic analysis in CPS and NCMP for Capacity Planning

References

CPS Data Notifications Overview

Analysis

Below analysis shows the use case attached to a particular topic. What data is been sent out and by whom.
Have linked the schema used which can be used to estimate the size of the events.

Topic

Use Case

In Use

Event size ( Estimate T Shirt Size )

Schema

Frequency ( In terms of discovery )

Notes

Topic

Use Case

In Use

Event size ( Estimate T Shirt Size )

Schema

Frequency ( In terms of discovery )

Notes

1

cps.data-updated-events

Cps Core Notifications

Events are sent when their is any change to the DataNode ( used in CPS-Core ) Since NCMP as well uses CPS-Core so any change to the cached data will result in an event.

Possible operations

CREATE

UPDATE

DELETE

Yes ( But only for cached/ non passthrough data )

Contains only 6 string attributes for now.

( Small )

cps data updated events

1 event per registration request

1 event per de-registration request

additional events if the underlying datanode is updated.

Work in progress to limit the number of notifications based on subscription feature.

 

Can be individually disabled using a property.
app.cps.data-updated.change-event-notifications-enabled

2

dmi-device-heartbeat

Trust Level

Notifications are coming from the devices managed by the DMI Plugins. Devices advertising if they are alive or not.

Feature available but not actively used.

Just contain one attribute that contain the effective trust level from the device.

( Small )

dmi device heartbeat

No data at this moment

 

3

subscription

Cm Subscription

Event coming from DME to NCMP to Create or Delete a Subscription Request.

Feature available and plans to use it to filter the notifications.

Can vary. Contains attributes that can accept list of data.

Depends on the detail of the subscription ( scopeFilter , targetFilter etc )

( Small to Medium )

 

dme to ncmp cm subscription

Not directly used during discovery.

Part of subscription flow.

4

ncmp-dmi-cm-avc-subscription

Cm Subscription

Subscription use case. Topic used to communicate between NCMP and DMI Plugins to register the subscription.

As above.

Depends on the filters present in the incoming subscription request and number of cm handle properties the target filter has.
Based on incoming filter , cm handle properties are fetched from DB and send along to the DMI Plugin.

(Small to Large )

 

ncmp to dmi cm subscription request

Not directly used during discovery.

Part of subscription flow.

5

dmi-ncmp-cm-avc-subscription

Cm Subscription

Response from the DMI Plugin whether it was able to ACCEPT or REJECT the subscription request.

As above.

Just a response if the request was ACCEPTED or REJECTED.

( Small )

dmi to ncmp subscription response

Not directly used during discovery.

Part of subscription flow.

6

subscription-response

Cm Subscription

Response sent back to DME against the Subscription request which came to NCMP.

As above.

Contains list of targets that are ACCEPTED, REJECTED or in PENDING state.

( Small to Medium )

 

ncmp to dme cm subscription response

Not directly used during discovery.

Part of subscription flow.

7

ncmp-events

Lifecycle Management Events

Any state transition happening to the cm handle will result in an event.
Below are possible transitions.

None(hypothetical ) to ADVISED

ADVISED to READY

ADVISED to LOCKED

LOCKED to ADVISED

READY to DELETING

DELETING to DELETED

Yes

Contains cm handle state transition , cm handle properties and few other attributes.

( Small to Large ) - depends on the number of properties associated with a cmhandle.

lifecycle management events

4 events minimum for the best case for registration and de-registration.

 

If cm handles go to LOCKED state then the number of events could increase because of internal retry logic.

 


Note : Event size is categorized in terms of T-Shirt size with respect to the attributes type present in the schema. Eg : for simple object like string then categorizing as Small. For complex objects which can accommodate more number of objects then categorizing as Large.

Related content