Skip to content
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

New Parser show interface extensive #240

Open
albertguasch opened this issue Sep 18, 2018 · 2 comments
Open

New Parser show interface extensive #240

albertguasch opened this issue Sep 18, 2018 · 2 comments

Comments

@albertguasch
Copy link

Hi,

I am trying to adapt the show interface media to a new one show interface extensive parser in order to get information about queues in each interface.

It Works fine for traffic-statistics and input/output errors but is not working for queue counters. I guess is because xpath is 2 level Deep.

Here an example

parser:
regex-command: show\s+interfaces\s+extensive\s+|\s+display\s+xml
matches:
-
type: multi-value
method: xpath
xpath: //[local-name() = 'physical-interface']
loop:
key: ./
[local-name() = 'name']
sub-matches:
-
xpath: ./[local-name() = 'traffic-statistics']/[local-name() = 'input-bps']
variable-name: $host.interface.$key.input-bps
-
xpath: ./[local-name() = 'traffic-statistics']/[local-name() = 'input-pps']
variable-name: $host.interface.$key.input-pps
-
xpath: ./[local-name() = 'traffic-statistics']/[local-name() = 'output-bps']
variable-name: $host.interface.$key.output-bps
-
xpath: ./[local-name() = 'traffic-statistics']/[local-name() = 'output-pps']
variable-name: $host.interface.$key.output-pps
-
xpath: ./[local-name() = 'input-error-list']/[local-name() = 'input-errors']
variable-name: $host.interface.$key.input-errors
-
xpath: ./[local-name() = 'input-error-list']/[local-name() = 'input-drops']
variable-name: $host.interface.$key.input-drops
-
xpath: ./[local-name() = 'output-error-list']/[local-name() = 'output-errors']
variable-name: $host.interface.$key.output-errors
-
xpath: ./[local-name() = 'output-error-list']/[local-name() = 'output-drops']
variable-name: $host.interface.$key.output-drops
-
xpath: ./[local-name() = 'output-error-list']/[local-name() = 'output-drops']
variable-name: $host.interface.$key.output-drops
-
xpath: ./[local-name() = 'queue-counters']/[local-name() = 'queue-counters-queued-packets']
variable-name: $host.interface.$key.queue-counters-queued-packets

And the XML sample:



reth0
up
up
128
536
131
reth SecGW/CPN
Ethernet
1518
disabled
10Gbps
none
none
disabled
disabled

        <minimum-links-in-aggregate>1</minimum-links-in-aggregate>
        <minimum-bandwidth-in-aggregate>0</minimum-bandwidth-in-aggregate>
        <if-device-flags>
            <ifdf-present/>
            <ifdf-running/>
        </if-device-flags>
        <if-config-flags>
            <iff-snmp-traps/>
            <internal-flags>0x4000</internal-flags>
        </if-config-flags>
        <current-physical-address>00:10:db:ff:10:00</current-physical-address>
        <hardware-physical-address>00:10:db:ff:10:00</hardware-physical-address>
        <interface-flapped junos:seconds="21652480">2018-01-11 00:49:15 CET (35w5d 14:34 ago)</interface-flapped>
        <statistics-cleared>2018-09-17 21:59:58 CEST (18:23:57 ago)</statistics-cleared>
        <traffic-statistics junos:style="verbose">
            <input-bytes>10366164095177</input-bytes>
            <input-bps>1938269248</input-bps>
            <output-bytes>1271067057281</output-bytes>
            <output-bps>238333248</output-bps>
            <input-packets>9363622448</input-packets>
            <input-pps>215514</input-pps>
            <output-packets>5195882312</output-packets>
            <output-pps>121456</output-pps>
            <ipv6-transit-statistics>
                <input-bytes>0</input-bytes>
                <output-bytes>0</output-bytes>
                <input-packets>0</input-packets>
                <output-packets>0</output-packets>
            </ipv6-transit-statistics>
        </traffic-statistics>
        <stp-traffic-statistics junos:style="verbose">
            <stp-input-bytes-dropped>0</stp-input-bytes-dropped>
            <stp-output-bytes-dropped>0</stp-output-bytes-dropped>
            <stp-input-packets-dropped>0</stp-input-packets-dropped>
            <stp-output-packets-dropped>0</stp-output-packets-dropped>
        </stp-traffic-statistics>
        <input-error-list>
            <input-errors>0</input-errors>
            <input-drops>0</input-drops>
            <framing-errors>0</framing-errors>
            <input-runts>0</input-runts>
            <input-giants>0</input-giants>
            <input-discards>0</input-discards>
            <input-resource-errors>0</input-resource-errors>
        </input-error-list>
        <output-error-list>
            <carrier-transitions>0</carrier-transitions>
            <output-errors>0</output-errors>
            <output-drops>0</output-drops>
            <mtu-errors>0</mtu-errors>
            <output-resource-errors>0</output-resource-errors>
        </output-error-list>
        <queue-counters junos:style="brief">
            <interface-cos-short-summary>
                <intf-cos-queue-type>Egress queues</intf-cos-queue-type>
                <intf-cos-num-queues-supported>8</intf-cos-num-queues-supported>
                <intf-cos-num-queues-in-use>4</intf-cos-num-queues-in-use>
            </interface-cos-short-summary>
            <queue>
                <queue-number>0</queue-number>
                <forwarding-class-name>best-effort</forwarding-class-name>
                <queue-counters-queued-packets>5195048807</queue-counters-queued-packets>
                <queue-counters-trans-packets>5195048806</queue-counters-trans-packets>
                <queue-counters-total-drop-packets>0</queue-counters-total-drop-packets>
            </queue>
            <queue>
                <queue-number>1</queue-number>
                <forwarding-class-name>expedited-forwarding</forwarding-class-name>
                <queue-counters-queued-packets>0</queue-counters-queued-packets>
                <queue-counters-trans-packets>0</queue-counters-trans-packets>
                <queue-counters-total-drop-packets>0</queue-counters-total-drop-packets>
            </queue>
            <queue>
                <queue-number>2</queue-number>
                <forwarding-class-name>assured-forwarding</forwarding-class-name>
                <queue-counters-queued-packets>0</queue-counters-queued-packets>
                <queue-counters-trans-packets>0</queue-counters-trans-packets>
                <queue-counters-total-drop-packets>0</queue-counters-total-drop-packets>
            </queue>
            <queue>
                <queue-number>3</queue-number>
                <forwarding-class-name>network-control</forwarding-class-name>
                <queue-counters-queued-packets>826937</queue-counters-queued-packets>
                <queue-counters-trans-packets>826937</queue-counters-trans-packets>
                <queue-counters-total-drop-packets>0</queue-counters-total-drop-packets>
            </queue>
        </queue-counters>
        <queue-num-forwarding-class-name-map>
            <queue-number>0</queue-number>
            <forwarding-class-name>best-effort</forwarding-class-name>
        </queue-num-forwarding-class-name-map>
        <queue-num-forwarding-class-name-map>
            <queue-number>1</queue-number>
            <forwarding-class-name>expedited-forwarding</forwarding-class-name>
        </queue-num-forwarding-class-name-map>
        <queue-num-forwarding-class-name-map>
            <queue-number>2</queue-number>
            <forwarding-class-name>assured-forwarding</forwarding-class-name>
        </queue-num-forwarding-class-name-map>
        <queue-num-forwarding-class-name-map>
            <queue-number>3</queue-number>
            <forwarding-class-name>network-control</forwarding-class-name>
        </queue-num-forwarding-class-name-map>
@3fr61n
Copy link
Contributor

3fr61n commented Sep 19, 2018

Hi Albert,

It seems you need to modify your xpath, could you please try something like

./[local-name() = 'queue-counters']/[local-name() = 'queue'][queue-number='0']/[local-name() = 'queue-counters-queued-packets']

or a simplified version

./[local-name() = 'queue-counters']/queue[queue-number='0']/queue-counters-queued-packets

Then if it works you should repeat the same for each queue-number (0-3)

Regards

@albertguasch
Copy link
Author

Hi,

Now I the parser doesn't fail. No log error in the log file.
But not able to record an value. Any problema with the variable?

        -
            xpath: ./*[local-name() = 'queue-counters']/*[local-name() = 'queue'][queue-number='0']/*[local-name() = 'queue-counters-qu

eued-packets']
variable-name: $host.interface.$key.queue.queue-number.0.queue-counters-queued-packets

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants