Правила Прометея оценивают в текущий момент времени , данные облачных часов часто очень сильно задерживаются, поэтому, хотя вы можете получить график исторических данных, значение текущих данных всегда равно нулю.
Вы можете исправить это, добавив смещение, например:
(
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
)
Каждый "не сохраняет повторения, которые произошли в xsl:for-каждом", потому что XSLT является функциональным языком, и переменные неизменны.
Следующее преобразование находит требуемый максимум:
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:output method="text"/> <xsl:template match="/"> <xsl:call-template name="maximum"> <xsl:with-param name="pNodes" select="*/Question"/> </xsl:call-template> </xsl:template> <xsl:template name="maximum"> <xsl:param name="pNodes"/> <xsl:variable name="vNumNodes" select="count($pNodes)"/> <xsl:choose> <xsl:when test="$vNumNodes = 1"> <xsl:value-of select="count($pNodes[1]/Response)"/> </xsl:when> <xsl:otherwise> <xsl:variable name="vHalf" select="floor($vNumNodes div 2)"/> <xsl:variable name="vMax1"> <xsl:call-template name="maximum"> <xsl:with-param name="pNodes" select="$pNodes[not(position() > $vHalf)]"/> </xsl:call-template> </xsl:variable> <xsl:variable name="vMax2"> <xsl:call-template name="maximum"> <xsl:with-param name="pNodes" select="$pNodes[position() > $vHalf]"/> </xsl:call-template> </xsl:variable> <xsl:value-of select= "$vMax1*($vMax1 >= $vMax2) + $vMax2*($vMax2 > $vMax1)"/> </xsl:otherwise> </xsl:choose> </xsl:template> </xsl:stylesheet>
При применении на предоставленный XML-документ:
<Survey> <Question> <Response text="Website" /> <Response text="Print Ad" /> </Question> <Question> <Response text="Yes" /> </Question> </Survey>
к требуемому результату приводят:
2
Действительно отметьте следующее: шаблон называют"maximum
"называет себя рекурсивно и реализует DVC (Разделите и Завоюйте принцип) минимизировать глубину стопки рекурсии. Список узлов разделяется на два, максимумы двух списков вычисляются (рекурсивно), и больший из этих двух возвращается.