Дублирующиеся записи журнала. Ведение облачного журнала Google, opentelemetry.sdk python.Python

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Дублирующиеся записи журнала. Ведение облачного журнала Google, opentelemetry.sdk python.

Сообщение Anonymous »

Я анализирую txt-файлы, содержащие журналы заданий/шагов рабочего процесса GitHub, и отправляю их в облако Google. Я использую код ниже:

Код: Выделить всё

import logging
import google.cloud.logging
from opentelemetry.sdk.resources import Resource
from opentelemetry.sdk._logs import LoggerProvider, LoggingHandler
import dateutil.parser as dp

def get_logger(resource, name):

client = google.cloud.logging.Client()
client.setup_logging()

logger = logging.getLogger(str(name))
logger.handlers.clear()
logger_provider = LoggerProvider(resource=resource)
handler = LoggingHandler(level=logging.NOTSET, logger_provider=logger_provider)
logger.addHandler(handler)
return logger

resource_attributes ={"github.source": "github-exporter","workflow_run_id": GHA_RUN_ID}

resource_log = Resource(attributes=resource_attributes)
job_logger = get_logger(resource_log, "job_logger")

with open ("./logs/log1.txt") as f:
for line in f.readlines():
try:
line_to_add = line[29:-1].strip()
len_line_to_add = len(line_to_add)
timestamp_to_add = line[0:23]
if len_line_to_add > 0:
# Convert ISO 8601 to timestamp
try:
parsed_t = dp.isoparse(timestamp_to_add)
except ValueError as e:
print("Line does not start with a date. Skip for now")
continue
unix_timestamp = parsed_t.timestamp()*1000

extra_data = {
"log.timestamp":unix_timestamp,
"log.time":timestamp_to_add,
}

if line_to_add.lower().startswith("##[debug]"):
job_logger._log(level=logging.DEBUG,msg=line_to_add,extra=extra_data,args="")
else:
job_logger._log(level=logging.INFO,msg=line_to_add,extra=extra_data,args="")

except Exception as e:
print("Error exporting log line ERROR: ", e)
В результате получается несколько записей одного и того же сообщения с разницей только в идентификаторе вставки каждого сообщения.
Снимок экрана из журналов Google Cloud Logs Explorer
Я прочитал
Дубликаты записей журнала ведения журнала в облаке Google на stackdriver в функции облака Google с использованием Python
и
Дубликаты записей журнала с ведением журнала Google Cloud Stackdriver кода Python в Kubernetes Engine
относительно

Код: Выделить всё

the client.setup_logging method sets up 2 handlers, a normal logging.StreamHandler and also a GCP-specific handler
Но я не могу понять, как я могу применить это с пакетом opentelemetry.sdk._logs.
Любые предложения будут очень полезны. Спасибо.

Подробнее здесь: https://stackoverflow.com/questions/783 ... sdk-python
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Ведение журнала Python: создайте журнал, если он не существует, или откройте и продолжите ведение журнала, если он сущес
    Anonymous » » в форуме Python
    0 Ответы
    49 Просмотры
    Последнее сообщение Anonymous
  • Ведение журнала Python, цветное ведение журнала
    Anonymous » » в форуме Python
    0 Ответы
    43 Просмотры
    Последнее сообщение Anonymous
  • Ведение журнала Python, цветное ведение журнала
    Anonymous » » в форуме Python
    0 Ответы
    42 Просмотры
    Последнее сообщение Anonymous
  • Ведение журнала Python, цветное ведение журнала
    Anonymous » » в форуме Python
    0 Ответы
    22 Просмотры
    Последнее сообщение Anonymous
  • Ведение журнала Python, цветное ведение журнала
    Anonymous » » в форуме Python
    0 Ответы
    28 Просмотры
    Последнее сообщение Anonymous

Вернуться в «Python»