For a deeper look into our Elektron API, look into:

Overview |  Quickstart |  Documentation |  Downloads |  Tutorials |  Articles

question

Upvotes
Accepted
3 0 0 3

Retrieving Services Availability with Websocket API

Hi team, I am currently using Websocket API with Python and trying to get a response from the ADS server about available services to be using by the application at a certain point in time.

The expected results are like mapping "ServiceName" with "State", when accessing ADSMON >> Services Statistics. For example:

  • ELEKTRON_DD : UP
  • DELAYED_CONF : UP

Is there any request to be used with Python Websocket API to retrieve such information?

python#productwebsockets
icon clock
10 |1500

Up to 2 attachments (including images) can be used with a maximum of 512.0 KiB each and 1.0 MiB total.

Upvotes
Accepted
79.4k 253 52 74

@Dustinn

Thank you for reaching out to us.

Yes, you can use the source directory request message.

{
    "ID": 2,
    "Domain": "Source",
    "Key": {
        "Filter": 3
    }
}

The response is:

[
    {
        "ID": 2,
        "Type": "Refresh",
        "Domain": "Source",
        "Key": {
            "Filter": 3
        },
        "State": {
            "Stream": "Open",
            "Data": "Ok"
        },
        "Map": {
            "KeyType": "UInt",
            "Entries": [
                {
                    "Action": "Add",
                    "Key": 257,
                    "FilterList": {
                        "Entries": [
                            {
                                "ID": 1,
                                "Action": "Set",
                                "Elements": {
                                    "Name": "ELEKTRON_DD",
                                    "SupportsQoSRange": 0,
                                    "Capabilities": {
                                        "Type": "Array",
                                        "Data": {
                                            "Type": "UInt",
                                            "Data": [
                                                5,
                                                6,
                                               ...
                                            ]
                                        }
                                    },
                                    "QoS": {
                                        "Type": "Array",
                                        "Data": {
                                            "Type": "Qos",
                                            "Data": [
                                                {
                                                    "Timeliness": "Realtime",
                                                    "Rate": "JitConflated"
                                                }
                                            ]
                                        }
                                    },
                                   ...,
                                    
                                }
                            },
                            {
                                "ID": 2,
                                "Action": "Set",
                                "Elements": {
                                    "ServiceState": 1,
                                    "AcceptingRequests": 1
                                }
                            }
                        ]
                    }
                },
               ...
    }
]
icon clock
10 |1500

Up to 2 attachments (including images) can be used with a maximum of 512.0 KiB each and 1.0 MiB total.

Upvote
24.8k 54 17 14

Hello @Dustinn

Just want to add more information from @Jirapongse answer. You can check the service status from the ServiceState property.

  • 0: Down
  • 1: Up

1693292859023.png

Additionally, you can customize the filter parameter based on your preference:

{
  "Key": {
    "Filter": <Filter>
  },
  "ID": 2,
  "Domain": "Source"
}

The "Filter" value is a mask that provides different levels of details:

  • 1 (SERVICE_INFO_FILTER) - info that identifies a service
  • 2 (SERVICE_STATE_FILTER) - info about the current state of a service
  • 4 (SERVICE_GROUP_FILTER) - item group status and item group merge info
  • 8 (SERVICE_LOAD_FILTER) - info about the service workload
  • 24 (SERVICE_DATA_FILTER) - info that should be applied to all items associated
  • 32 (SERVICE_LINK_FILTER) - info about the upstream sources

which will provide more details in the response.

The filter that suggested Jirapongse is 3 which means SERVICE_INFO_FILTER (1) + SERVICE_STATE_FILTER (2).



1693292859023.png (169.7 KiB)
icon clock
10 |1500

Up to 2 attachments (including images) can be used with a maximum of 512.0 KiB each and 1.0 MiB total.

@wasin.w

Many thanks for your additional information. May I know in which document I can view those details? The "Websocket API Protocol Specification" does not seems to contain those.

Hello @Dustinn

This information is available in the "Source Directory Domain" section of the Refinitiv Domain Model Usage Guide document (RDM Usage Guide).

You can find the documents from the following links:

Write an Answer

Hint: Notify or tag a user in this post by typing @username.

Up to 2 attachments (including images) can be used with a maximum of 512.0 KiB each and 1.0 MiB total.