У выражения Прометея есть данные, но у правила для этого выражения нет данных

Еще одно объяснение. Как программист, вы, вероятно, понимаете разницу между классами против экземпляров (т. Е. Объекты). zip() называется встроенной функцией (в официальном документе). На самом деле, это встроенная функция генератора . Это означает, что это скорее класс. Вы даже можете попробовать в интерактивном режиме:

>>> zip

Классы - это типы. Из-за этого также должно быть ясно следующее:

>>> type(zip)

Ваш z является экземпляром класса, и вы можете думать о вызове zip() как о вызове конструктора класса:

>>> a = [1, 2, 3]
>>> b = [7, 8, 9]
>>> z = zip(a, b)
>>> z

>>> type(z)

z - итератор (объект), который хранит внутри итераторов для a и b. Из-за своей общей реализации класс z (или zip) не имеет никакого значения для сброса итераторов через a или b или любые последовательности. Из-за этого нет возможности сбросить z. Самый чистый способ решить вашу конкретную проблему - скопировать список (как вы упомянули в вопросе и Леннарт Регебро предлагает ). Другим понятным способом является использование zip(a, b) дважды, создавая таким образом два итератора z, которые ведут себя с самого начала таким же образом:

>>> lst1 = list(zip(a, b))
>>> lst2 = list(zip(a, b))

Однако это невозможно использовать вообще с идентичным результатом . Подумайте, что a или b являются уникальными последовательностями, генерируемыми на основе некоторых текущих условий (например, температуры, считанные с нескольких термометров).

0
задан Shawabawa 17 January 2019 в 15:16
поделиться

1 ответ

Правила Прометея оценивают в текущий момент времени , данные облачных часов часто очень сильно задерживаются, поэтому, хотя вы можете получить график исторических данных, значение текущих данных всегда равно нулю.

Вы можете исправить это, добавив смещение, например:

(
  max(aws_sqs_approximate_number_of_messages_visible_average{queue_name="queue-1"} offset 10m) 
+ max(aws_sqs_approximate_number_of_messages_not_visible_average{queue_name="queue-2"}) offset 10m) 
/ sum(kube_pod_container_status_ready{container="worker"} offset 10m
)
0
ответ дан Shawabawa 17 January 2019 в 15:16
поделиться
Другие вопросы по тегам:

Похожие вопросы: