def provision_geowatch_producer(topic, codec, client=None, max_tries=12, sleep_period=5, topic_check=False, verbose=False): settings_general = load_settings_general() if verbose: settings_kafka = load_settings_kafka() settings_kinesis = load_settings_kinesis() print_settings(settings_general, settings_kafka, settings_kinesis) client, producer = None, None kwargs = { 'topic': topic, 'topic_check': topic_check, 'codec': codec, 'client': client, 'max_tries': max_tries, 'sleep_period': sleep_period } if client: client, producer = provision_producer(settings_general['backend'], ** kwargs) else: kwargs['topic_prefix'] = settings_general['topic_prefix'] if settings_general['backend'] == "kafka": settings_kafka = load_settings_kafka() kwargs['host'] = settings_kafka['host'] client, producer = provision_producer(settings_general['backend'], ** kwargs) elif settings_general['backend'] == "kinesis": settings_kinesis = load_settings_kinesis() kwargs['aws_region'] = settings_kinesis['aws_region'] kwargs['aws_access_key_id'] = settings_kinesis['aws_access_key_id'] kwargs['aws_secret_access_key'] = settings_kinesis['aws_secret_access_key'] client, producer = provision_producer(settings_general['backend'], ** kwargs) return (client, producer)
def logTileRequest(tileorigin, tilesource, x, y, z, ext, status, datetime, ip, gw_logs=None): log_root = settings.LOG_REQUEST_ROOT log_format = settings.LOG_REQUEST_FORMAT if log_root and log_format: log_file = log_root+os.sep+"requests_tiles_"+datetime.strftime('%Y-%m-%d')+".tsv" line = log_format.format(status=status,tileorigin=tileorigin,tilesource=tilesource,z=z,x=x,y=y,ext=ext,ip=ip,datetime=datetime.isoformat()) # Write to File client, producer = provision_producer("file", path=log_file, codec="GeoWatchCodecPlain", verbose=True) producer.send_text(line) # Write to Log Stream if not gw_logs: topic = settings.TILEJET_GEOWATCH_TOPIC_LOGS client, gw_logs = provision_geowatch_producer(topic, "GeoWatchCodecPlain", max_tries=3, sleep_period=5, verbose=True) gw_logs.send_text(line)