step2/src/client/client.py [34:85]:
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
queries = {
    "hello": 349,
    "world": 728,
    "to be, or not to be": 1,
    "insolence": 14,
}


# Structured log configuration
def field_name_modifier(_, __, event_dict):
    """Replace log level field name 'level' with 'serverity' to meet
    Cloud Logging's data model.
    Make sure to call this processor after structlog.stdlib.add_log_level.
    https://cloud.google.com/logging/docs/reference/v2/rpc/google.logging.v2?hl=en#google.logging.v2.LogEntry
    """
    event_dict["severity"] = event_dict["level"]
    del event_dict["level"]
    return event_dict


def get_json_logger():
    structlog.configure(
        processors=[
            structlog.stdlib.add_log_level,
            field_name_modifier,
            structlog.processors.TimeStamper("iso"),
            structlog.processors.JSONRenderer(),
        ]
    )
    return structlog.get_logger()


logger = get_json_logger()


class ClientConfigError(Exception):
    pass


class UnexpectedResultError(Exception):
    pass


SERVER_ADDR = os.environ.get("SERVER_ADDR", "")
if SERVER_ADDR == "":
    raise ClientConfigError("environment variable SERVER_ADDR is not set")
logger.info(f"server address is {SERVER_ADDR}")

# set up OpenTelemetry exporter for Cloud Trace.
# NOTE: SimpleSpanProcessor is for debugging use in general.
# we use it here for a demonstration purpose.
exporter = CloudTraceSpanExporter()
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -



step3/src/client/client.py [36:87]:
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
queries = {
    "hello": 349,
    "world": 728,
    "to be, or not to be": 1,
    "insolence": 14,
}


# Structured log configuration
def field_name_modifier(_, __, event_dict):
    """Replace log level field name 'level' with 'serverity' to meet
    Cloud Logging's data model.
    Make sure to call this processor after structlog.stdlib.add_log_level.
    https://cloud.google.com/logging/docs/reference/v2/rpc/google.logging.v2?hl=en#google.logging.v2.LogEntry
    """
    event_dict["severity"] = event_dict["level"]
    del event_dict["level"]
    return event_dict


def get_json_logger():
    structlog.configure(
        processors=[
            structlog.stdlib.add_log_level,
            field_name_modifier,
            structlog.processors.TimeStamper("iso"),
            structlog.processors.JSONRenderer(),
        ]
    )
    return structlog.get_logger()


logger = get_json_logger()


class ClientConfigError(Exception):
    pass


class UnexpectedResultError(Exception):
    pass


SERVER_ADDR = os.environ.get("SERVER_ADDR", "")
if SERVER_ADDR == "":
    raise ClientConfigError("environment variable SERVER_ADDR is not set")
logger.info(f"server address is {SERVER_ADDR}")

# set up OpenTelemetry exporter for Cloud Trace.
# NOTE: SimpleSpanProcessor is for debugging use in general.
# we use it here for a demonstration purpose.
exporter = CloudTraceSpanExporter()
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -



