Auswertung der Kanalauslastung

Hallo zusammen,

habe für unser Analytics eine Auswertung zusammengestellt, in der man die Kanalauslastung externe Anrufe sehen kann (eingehend und ausgehend)

Das SQL dazu sieht so aus:

select
    time,
    SUM(calls) as calls
from
    (SELECT
        date_trunc('hour',time) as time,
        MAX(calls) as calls

    FROM(

        SELECT
        time,
        count(1) as calls
        FROM
        generate_series(
            timestamp $__timeFrom(),
            timestamp $__timeTo(),
            '5 second') AS time

        INNER JOIN

        ( 
            SELECT
                tsrange(record_timestamp, record_timestamp + (total_duration * interval '1 second')) as timerange
            FROM
                filter_calls($__timeFrom(), $__timeTo(),'all','*','*','','','','')
            where
                direction = 'inbound' or direction = 'outbound' 
        ) record ON record.timerange @> time

        group by 1

    ) as series

    group by 1

    UNION


    select 
        time,
        0 as max

    from
        generate_series(
            timestamp $__timeFrom(),
            timestamp $__timeTo(),
            '1 hour') AS time

    ) as result

group by 1
order by 1
;

Wir sehen dazu alle 5 Sekunden nach wie viele Anrufe gleichzeitig offen waren und suchen den Maximalwert pro Stunde. Diese Operation ist relativ teuer und funktioniert max. für den Zeitraum einer Woche. Weiter optimieren würden wir die Leistung, wenn die Auswertung in den Standard soll.

Meine Bitte an Euch:

  1. Haltet Ihr diese Auswertung für Sinnvoll im Standard?
  2. Bitte testen, ob die Auswertung für Euch funktioniert.

Danke!
Mathias

Hallo @Mathias,

der Query dauert schon einige Sekunden (für eine Woche mit ~360 Gesprächen), funktioniert aber!

Die Auswertung finde ich sinnvoll um die tatsächlichen Gespräche von den genutzten Lizenzen zu trennen (vgl. Server-Grafana), hier müsste dann im filter_calls noch auf die Variablen zugegriffen werden. Damit können die Durchwahlen ohne ständige Lizenznutzung gefiltert werden, also die Teilzeitlizenznutzer.

Gruß,
Rapha

Hallo @Mathias
Ich kann nur bestätigen dass eine solche Auswertung im Standard sehr nützlich wäre. Allerdings würde ich dazu auch meinen Wunsch bekräftigen, dass man solche Reports asynchron nach einem Schedule per Mail verschicken könnte.

Danke für Eure schnellen Rückmeldungen.

@rapha Aktuell nehme ich alle 5 Sekunden ein “Sample” indem ich nachsehe, wie viele Gespräche zu diesem Zeitpunkt offen sind. Das macht die Abfrage sehr teuer. Wenn das in den Standard kommt werden wir diese werte entweder “voraggregieren” oder uns fällt noch ein bessere Weg ein maximale überlappungen in einem Zeitraum zu ermitteln.

@voipstack Ja, das mit des Reports versenden wäre gut. Aktuell sieht das Grafana nicht vor und es gibt auch kein Plugin.

LG
Mathias

@Mathias ja das ist auf jedenfall eine gute Auswertung die in den Standard kommen sollte.
Wir haben einigen Kunden wo es darum geht wie viele SIP-Kanäle brauche ich denn.
Kann man das auch getrennt nach Inbound/Outbound machen?
Weil man ja echt viele Provider hat wo eingehende keine Rolle Spielen

Gruß Markus

Hallo Markus,
Einfach

entfernen und

durch

ersetzen.

Gruß Jonas Plaum

Ja das ist schon klar ich wollte damit sagen wenn das im Standard enthalten ist dann könnte man ja gleich nach Inbound und Outbound aufschlüsseln.

Gruß Markus

Bei mir läuft es leider nicht :frowning:

7.18.12

Gruß
Sebastian

Hallo Mathias,

ich bin auch bei einem Kunden über die Mail-Alert Anforderung gestolpert und wir haben das umgesetzt, siehe:

Gibt es einen Grund, warum ihr das deaktiviert habt und default wieder deaktiviert? Weil eigentlich kann Grafana ja schon Mails verschicken …?

Hallo Zusammen.

Ich würde das Thema zur Kanalauswertung wiederholt beleben, da mein Grafana hier Fehler ausspuckt:
“pq: function tsrange(timestamp with time zone, timestamp with time zone) does not exist”
Vielleicht hängt das mit diversen Versionsanderungen/Anpassungen zusammen?!
Es wäre super, wenn das Jemand mal prüfen und ggfs verbessern könnte.

Danke im Voraus

TP

1 Like

wärs möglich das mir evtl jemand kurz zeigt, wie ich diese auswertung eingerichtet bekomme? ich bin da zu doof für und der kunde würde gerne wissen wie sein sip trunk ausgelastet ist…
danke danke danke

1 Like

Kann denn keiner helfen :frowning: ??

Hallo Torben,

auch wir wären daran sehr interessiert. Ich bekomme auch den selben Fehler wie du.

Vielleicht könnte sich ja nochmal jemand vom @staff dazu äußern.

Das wäre wirklich super!

Danke im Voraus,

VG
Marius

1 Like

Ich lass das mal hier.

Die Zeile:

tsrange(record_timestamp, record_timestamp + (total_duration * interval ‘1 second’)) as timerange

ändern auf:

tsrange(record_timestamp::timestamp, record_timestamp::timestamp + (total_duration * interval ‘1 second’)) as timerange

3 Likes