Skip to content

Float divide-by-zero silently writes +Inf/NaN to a metric (int errors): intended? #1005

@Lougarou

Description

@Lougarou

Hi! Quick one, is this intended or just an oversight?

Integer divide-by-zero raises a runtime error (drops the line, bumps prog_runtime_errors_total), but float divide-by-zero doesn't. It just writes +Inf/NaN straight into the metric, no error. Same with % (Fmod gives NaN).

gauge ratio
/(?P<denom>-?\d+)/ {
  ratio = 1000.0 / $denom
}

Feed it the line 0 and ratio comes out +Inf, silently. The int version (1000 / $denom) errors with Divide by zero instead, which is what made me notice.

(float($x) also happily takes "Inf"/"NaN", so you can get a non-finite metric with no division at all.)

Intended? Happy to send a small PR if not. Thanks!

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions