-
-
Notifications
You must be signed in to change notification settings - Fork 224
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Prometheus EP: _total metrics malformed since 0.8.63 #1410
Comments
fast, es gibt da noch den berühmten Null-Terminator, der auch ein Byte belegt. Daher hat man nur effektive Nutzdaten von |
#include <stdio.h>
int main() {
char total[7];
snprintf(total, sizeof(total) -1, "_total");
snprintf(total, 6, "_total");
return 0;
} und hier das Assembly .LC0:
.string "_total"
main:
push rbp
mov rbp, rsp
sub rsp, 16
lea rax, [rbp-7]
mov edx, OFFSET FLAT:.LC0
mov esi, 6
mov rdi, rax
mov eax, 0
call snprintf
lea rax, [rbp-7]
mov edx, OFFSET FLAT:.LC0
mov esi, 6
mov rdi, rax
mov eax, 0
call snprintf
mov eax, 0
leave
ret |
Hallo @lumapu
Da möchte ich dir widersprechen. Der Null-Terminator muss an dieser Stelle nicht abgezogen werden.
Es ist garantiert dass nur n-1 Zeichen und ein Null-byte im Puffer landen.
aus meiner Sicht genau richtig (und im diesem Fall auch notwendig). Für mich ist das Elegante daran dass ich mit BTW: So wie es jetzt implementiert ist funktioniert's auch nicht, da die Zeichenkette Soll ich den PR nochmals anfassen? |
ok, verstehe. Nein brauchst du nicht. Dann ist snprintf schlauer als ich gedacht habe 😉 |
Leider ist mir eine dem Code Review zum Opfer gefallene Zeile im PR durchgerutscht.
Soll ich einen neuen Commit auf den bestehenden PR #1411 machen oder einen neuen PR erstellen? |
sofern ich es im kommenden commit (hoffentlich heute) vergesse dann ja 😉 |
Danke für's einbauen. Da du vorgestern mal das Thema 'teuer' vs. 'billig' erwähnt hast, habe ich mit dem neuen Code mal etwas auf https://godbolt.org/ herumgespielt. Interessant zu sehen und mit der Seite auch relativ leicht zu machen. Nochmals Danke für's aufnehmen. |
finde interessant, dass der Xtensa ESP32 gcc bei der Zeile PS: der Compiler Explorer ist wahnsinnig interresant um solche Dinge besser zu verstehen. |
Seit dem code review commit in Version 0.0.63 sind im Prometheus EP leider die _total Metriken falsch.
Kommt durch das ersetzen von
strncpy(total, "_total", sizeof(total));
durchstrncpy(total, "_total", 6);
in der MethodeshowMetrics
Der Compiler kann wohl doch besser zählen, denn total ist deklariert als
char total[7];
😆 😆 😆Ich stelle noch einen kleinen PR zur Verfügung
The text was updated successfully, but these errors were encountered: