RDPv3 Transmit
    • Dark
      Light

    RDPv3 Transmit

    • Dark
      Light

    Article summary

    A rdpv3 data transmit transfers data to the Sight Machine cloud. The key difference w/ rdpv2 is that we preserve most of Remote Data Post Transmit functionality but we producer Kafka messages instead of MongoDB sslogs.

    Additionally:

    • The data format will maintain its structure instead of encasing it inside a nested value like data.fieldvalues

    This plugin works alongside with the sight_machine_cloud env variables, sharing the API_key, API_key_ID, and base_url properties.

    Example:

    If we want to upload our records to our Sight Machine cloud, https://cloudyday.sightmachine.io, our configuration will look something like this:

    {
        "data_receiver": [{}],
        "data_transmit": [
            {
                "transmit_type": "rdpv3",
                "transmit_name": "tiger_moth",
                "topic_prefix": "cloudyday.some_category"
            }
        ]
    }

    Configuration:

    Required and optional properties that can be configured for a Remote Data Post (RDPv3) transmit.

    • transmit_name: ID for the transmit. It must be unique.
    • transmit_type: Method to use in transmitting records.
    • filter_stream: A list of streams that will use the transmit. Each stream can either be * (all) or asset:stream.
    • base_url: URL of your Service Environment (e.g. https://my-environment.sightmachine.io). If this option is omitted, then the base_url configured in the sight_machine_cloud env variables will be used.
    • API_key: API key to allow for transmitting data to the Sight Machine cloud. If this option is omitted, then the value in the sight_machine_cloud env variables is used instead.
    • API_key_ID: API key ID to allow for transmitting data to the Sight Machine cloud. If this option is omitted then the value in the sight_machine_cloud env variables is used instead.
    • timeout: Number of seconds to wait until timing out.
    • poll_interval: Maximum number of seconds to wait between RDPv3 requests.
    • max_request_records: Maximum number of records to send in a single RDPv3 request.
    • max_request_size_bytes: Maximum number of bytes allowed in a single request. Regardless of this size, it is capped at 4 MB.
    • topic_prefix: Base name of the topic(s) to produce Kafka messages to. The prefix root must match the base_url, e.g. https://my-environment.sightmachine.io prefix: my-environment.aaa_123.
    • topic_suffix_field: Name of the field present in dataframe to get topic suffix. If topic_field not specified then default topic suffix will be asset:stream. The uniqueness of these values will determine how many different topics get produced.

    Note:

    By supplying the optional properties, base_url, API_key, and API_key_ID, in the transmit section, you can upload to a different Sight Machine cloud instance than the one specified in the sight_machine_cloud env variables.

    For example, if we wanted to upload records from the bathhouse:water stream to a specific Sight Machine cloud instance, https://yubaba.sightmachine.io, our configuration would look something like this:

    {
        "data_receiver": [{}],
        "data_transmit": [
            {
                "transmit_name": "sen",
                "transmit_type": "rdpv3",
                "filter_stream": [
                    "bathhouse:water"
                ],
                "base_url": "https://yubaba.sightmachine.io",
                "API_key": "Spirited_Away_some_api_key_content_here",
                "API_key_ID": "Haku",
                "topic_prefix": "yubaba.some_category"
            }
        ]
    }

    Warning:

    This plugin is very sensitive to upload bandwidth: if it can’t upload a payload completely within the timeout, it will abort the connection and try again. You may need to increase the timeout from the default of two minutes. For example:

    {
        "transmit_name": "SightMachine",
        "transmit_type": "rdpv3",
        "filter_stream": ["*"],
        "topic_prefix": "cloudyday.some_category",
        "timeout": 300
    }