def relay_telemetry()

in src/influxDBTelemetryPublisher.py [0:0]


def relay_telemetry(influxdb_parameters) -> None:
    """
    Relay Greengrass system telemetry from Greengrass to InfluxDB.

    Parameters
    ----------
       influxdb_paremeters(str): the retrieved parameters needed to connect to InfluxDB

    Returns
    -------
        None
    """

    # Now we can subscribe to Greengrass Local Telemetry and relay it to InfluxDB using our retrieved credentials
    telemetry_subscriber_client = awsiot.greengrasscoreipc.connect()
    handler = streamHandlers.TelemetryStreamHandler(influxdb_parameters)
    telemetry_operation = telemetry_subscriber_client.new_subscribe_to_topic(handler)
    try:
        request = SubscribeToTopicRequest()
        request.topic = telemetry_topic
        future = telemetry_operation.activate(request)
        future.result(TIMEOUT)
        logging.info('Successfully subscribed to topic: {}'.format(telemetry_topic))
        logging.info('Relaying telemetry to InfluxDB...')
    except concurrent.futures.TimeoutError as e:
        logging.error('Timeout occurred while subscribing to topic: {}'.format(telemetry_topic), exc_info=True)
        raise e
    except UnauthorizedError as e:
        logging.error('Unauthorized error while subscribing to topic: {}'.format(telemetry_topic), exc_info=True)
        raise e
    except Exception as e:
        logging.error('Exception while subscribing to topic: {}'.format(telemetry_topic), exc_info=True)
        telemetry_operation.close()
        raise e