El gráfico de correo electrónico no es arte ASCII para usted

Por la naturaleza de mi trabajo, siempre estoy entre diferentes departamentos, ni siquiera tengo una firma en mi correo electrónico de quién soy, porque yo mismo no sé quién soy. Recientemente automaticé la entrega de métricas de rendimiento del servidor SQL con PROD a los desarrolladores.





La información específica (métricas de rendimiento de SQL) no es importante, puede hacer esto para cualquier información e incluso dibujar gráficos. Los gráficos se envían por correo y se ven así en la ventana de correo en Outlook:





Pero antes de continuar, démosle la palabra a mi oponente imaginario, el zoomer hipster, aquí tiene prisa por hablar:





¡Hombre! Gráficos de correo? ¿Qué, en serio? Interfaz web, interactividad, Grafana - "no, no me he enterado"? También dibujaría gráficos con asteriscos en una letra, arte ASCII.





Por supuesto, mi oponente imaginario tiene toda la razón en un mundo imaginario ideal. Cualquier unicornio rosa que vuele allí se lo confirmará. Sin embargo, si no estamos en una startup, sino en una maldita empresa, entonces todo no es tan color de rosa.





-, PRODUCTION Enterprise (, CA PAM , copy/paste ). - , , .





-, , Grafana? , . " SQL PROD ". -, , ( security team) .





, on-prem, , . AWS ( PROD), , Department Billing Code, . , . Enterprise , - .





, email . , Grafana , screenshots. - . , ( - Junk )





connectivity (, , , ), , deploy (Jenkins, Octopus etc). - . , :





" - " (c) , Jenkins server, Job:





Jenkins powershell (, powershell Linux!) . performance , . :





makeChart $find @('3Read latency, microseconds','2Write Latency, microseconds') 'IO latency' 'Time' 'Times in microseconds' 'latency'
      
      



$find data set, . . makeChart:





# Xgraph colors
# 2 = red, 3 = blue, 4 = green, 5 = violet, 6 = orange, 7 = yellow, 8 = pink, 9 = cyan
function makeChart($ds, $cols, $title, $titleX, $titleY, $pngname)
{
	Out-File -FilePath $workfile -Force -Encoding ascii
	"Title = $title" | Add-Content $workfile  
	"title_x = $titleX" | Add-Content $workfile  
	"title_y = $titleY" | Add-Content $workfile
	$maxval = 0
	foreach ($c in $cols)
		{
		$colname = $c.Substring(1)
		$colch = $c[0]
		"color = $colch" | Add-Content $workfile
		$secf = -1
		foreach ($r in $find) {
			$val = $r[$colname]
			if ($val -gt $maxval) { $maxval = $val }
			if ($secf -lt 0) { $secf = $r.sec }
			$secl = $r.sec
			"$secl $val" | Add-Content $workfile
		}
	"NEXT" | Add-Content $workfile 
  }
  $maxval = $maxval * 1.03
      
      



- . ? Xgraph. 90 , , Unicode (-Encoding ascii). - , ! , . Xgraph:





&D:\Apps\Xgraph\bin\xgraph.exe $workfile -pdf -hms -x_range $secf $secl -y_range 0 $maxval -out_file $pdf
      
      



, y, x ( ), (-hms) ... pdf . attachment, , . Poppler pdf png.





&D:\Apps\poppler\bin\pdftoppm -png $pdf $pngname
      
      



:





Aquí está la programación extrema de nuevo: tenemos el HTML puro y limpio del derrame de publicaciones, sin CSS, sin javascript y sin nada en absoluto. Tenga en cuenta que png tiene '-1' en su nombre, esta es la primera página (es la única en este caso).





Hay una utilidad más de un plan similar, le permite dibujar gráficos de acuerdo con su descripción de texto: graphviz . Ya puede generar directamente en png y jpg:





Este es un ejemplo, como en otro trabajo, devuelvo el gráfico de bloqueo a los usuarios.








All Articles