snmp exporter info + sysname - snmp

i'm scraping the Cisco device with SNMP Exporter. Everything is OK, but i want to somehow add the OID: Sysname into the SNMP information, how to do it ?
Tried to add lookup like:
- source_indexes: [ifIndex]
lookup: sysName
but got an error. Maybe you have any clue ?
modules:
# Default IF-MIB interfaces table with ifIndex.
if_mib_dc:
version: 3
auth:
username: xxx
password: uuutt
auth_protocol: MD5
priv_protocol: AES
security_level: 33dds2
priv_password: slypt
walk: [ifHCInOctets, ifHCOutOctets, ifOperStatus, ifInErrors, ifOutErrors, ifInDiscards, ifOutDiscards]
lookups:
- source_indexes: [ifIndex]
lookup: ifAlias
- source_indexes: [ifIndex]
lookup: ifDescr
- source_indexes: [ifIndex]
# Use OID to avoid conflict with Netscaler NS-ROOT-MIB.
lookup: 1.3.6.1.2.1.31.1.1.1.1 # ifName
overrides:
ifType:
type: EnumAsInfo
I want to get sysname information like im getting ifAlias lookup.

Related

How is $id and $ref values are used in device tree yaml binding file? and can I see it?

This has been a question I had for a long time.
I started to read https://docs.kernel.org/devicetree/bindings/writing-schema.html but it's hard to understand.
For example in linux-5.15.68, the file Documentation/devicetree/bindings/pci/snps,dw-pcie.yaml starts like this.
# SPDX-License-Identifier: GPL-2.0
%YAML 1.2
---
$id: http://devicetree.org/schemas/pci/snps,dw-pcie.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: Synopsys DesignWare PCIe interface
maintainers:
- Jingoo Han <jingoohan1#gmail.com>
- Gustavo Pimentel <gustavo.pimentel#synopsys.com>
description: |
Synopsys DesignWare PCIe host controller
allOf:
- $ref: /schemas/pci/pci-bus.yaml#
properties:
compatible:
anyOf:
- {}
- const: snps,dw-pcie
How is the URI $id and $scmema used? and if I want to browse the file, how can I do it?
When I put http://devicetree.org/schemas/pci/snps,dw-pcie.yaml the browser says 'These are not the schemas you are looking for.'.

How to create a random string in Artillery for every connection

I am doing a load test for socket.io using Artillery
# my-scenario.yml
config:
target: "http://localhost:4000"
phases:
- duration: 60
arrivalRate: 10
engines:
socketio-v3: {transports: ['websocket']}
socketio:
query:
address: "{{ $randomString() }}"
scenarios:
- name: My sample scenario
engine: socketio-v3
I need the address field to be a different random string of fixed length for every connection.
Currently, $randomString() only generates 1 random string which is used for all connections, and also I can't control its length.
Thanks in advance!

Use globbed string in YAML

I am looking for a way to dynamically set the key using the path of the file below.
For example if I have this YAML:
prospectors.config:
- fields:
queue_name: <somehow get the globbed string below in here>
paths:
- /var/log/casino/*.log
type: log
output.redis:
hosts:
- "producer:6379"
key: "%{[fields.queue_name]}"
And then I had a file called /var/log/casino/test.log, then key would become test.
Im not sure that what you want is possible.
You could use the source field and configure your Redis output using that as the key:
output.redis:
hosts:
- "producer:6379"
key: "%{source}"
This would have the disadvantage of being the absolute path of the source file, not the basename as your question asks for.
If you have a small number of possible basename patterns, and want a queue for each. For example, you have files:
/common/path/test-1.log
/common/path/foo-0.log
/common/path/01-bar.log
/common/path/test-3.log
...
and wanted to have three queues in redis test, foo and bar you could use the source field and the conditionals available in the keys configuration of redis output something like this
output.redis:
hosts:
- "producer:6379"
key: "default_key"
keys:
- key: "test_key"
when.contains:
source: "test"
- key: "foo_key"
when.contains:
source: "foo"
- key: "bar_key"
when.contains:
source: "bar"

spring.profiles is not working as expected in spring boot

boot config *.yml file.
server.port: 2222
spring:
application:
name: x-service
data:
mongodb:
host: db.x
database: x
# userName: ${db.userName}
# password: ${db.password}
rabbitmq:
# port: ${queue.port}
host: queue.x
username: ${queue.userName}
password: ${queue.password}
listener:
max-concurrency: 1
prefetch: 1
acknowledge-mode: auto
auto-startup: true
dynamic: true
###########DEV##############
spring.profiles: dev
#queue.virtual.host: xuser
queue.userName: guest
queue.password: guest
queue.port: 5672
#db.userName:
#db.password:
falconUrl: http://x.y.com
##########DEFAULT###########
spring.profiles: qa
queue.virtual.host: xuser
queue.userName: xuser
queue.password: xpassword
queue.port: 3456
db.userName: xuser
db.password: xpassword
falconUrl: http://x.z.com
It gives me org.yaml.snakeyaml.parser.ParserException: while parsing MappingNode
in 'reader', line 1, column 1:
server.port: 2222
^
Duplicate key: spring.profiles
in 'reader', line 47, column 1:
error. If I comment properties of one of the profile.It works fine.
Can anyone please suggest what is wrong here?
The error message is actually quite specific and accurate: in the top-level mapping of your YAML file (the one starting with the key-value pair server.port and 2222 you have two identical keys (the scalar spring.profiles). And duplicate keys are not allowed in YAML, as the are required to be unique according to the specification.
The underlying problem is that if you want to change the configuration depending on the environment, you'll have to follow the documented specification, which states that:
A YAML file is actually a sequence of documents separated by --- lines, and each document is parsed separately to a flattened map.
If a YAML document contains a spring.profiles key, then the profiles value (comma-separated list of profiles) is fed into the Spring Environment.acceptsProfiles() and if any of those profiles is active that document is included in the final merge (otherwise not)
Your YAML file is a single implicit YAML document because it lacks the directive indicator --- that occurs at the beginning of an explicit YAML document. (the YAML directive ... that indicates end-of-document might not be supported properly supported by snake-yaml, at least it is not mentioned in the examples).
Your code should look like:
server.port: 2222
spring:
application:
name: x-service
data:
mongodb:
host: db.x
database: x
# userName: ${db.userName}
# password: ${db.password}
rabbitmq:
# port: ${queue.port}
host: queue.x
username: ${queue.userName}
password: ${queue.password}
listener:
max-concurrency: 1
prefetch: 1
acknowledge-mode: auto
auto-startup: true
dynamic: true
###########DEV##############
---
spring.profiles: dev
#queue.virtual.host: xuser
queue.userName: guest
queue.password: guest
queue.port: 5672
#db.userName:
#db.password:
falconUrl: http://x.y.com
##########DEFAULT###########
---
spring.profiles: qa
queue.virtual.host: xuser
queue.userName: xuser
queue.password: xpassword
queue.port: 3456
db.userName: xuser
db.password: xpassword
falconUrl: http://x.z.com
The statement in the documentation that "each document is parsed separately to a flattened map" is of course only true, if each of the documents has a mapping at the top level. That is what spring-boot expects, but you can as easily have a scalar or sequence at the top level of a document, and such documents are certainly not parsed by snake-yaml to a flattened map.

Cloud Foundry yaml parse error

I'm getting an error on cf push when I try to push a yaml file for a memcached service broker:
#cf push
FAILED
Error reading manifest file:
yaml: [] mapping values are not allowed in this context at line 2, column 7
/Users/pivotal/go-agent/pipelines/Mac-OSX-Testing/src/github.com/cloudfoundry/cli/Godeps/_workspace/src/github.com/cloudfoundry-incubator/candiedyaml/decode.go:95 (0x2c0d87)
/usr/local/go/src/pkg/runtime/panic.c:248 (0x16276)
/Users/pivotal/go-agent/pipelines/Mac-OSX-Testing/src/github.com/cloudfoundry/cli/Godeps/_workspace/src/github.com/cloudfoundry-incubator/candiedyaml/decode.go:144 (0x2c1609)
/Users/pivotal/go-agent/pipelines/Mac-OSX-Testing/src/github.com/cloudfoundry/cli/Godeps/_workspace/src/github.com/cloudfoundry-incubator/candiedyaml/decode.go:161 (0x2c17e5)
/Users/pivotal/go-agent/pipelines/Mac-OSX-Testing/src/github.com/cloudfoundry/cli/Godeps/_workspace/src/github.com/cloudfoundry-incubator/candiedyaml/decode.go:471 (0x2c3cd4)
/Users/pivotal/go-agent/pipelines/Mac-OSX-Testing/src/github.com/cloudfoundry/cli/Godeps/_workspace/src/github.com/cloudfoundry-incubator/candiedyaml/decode.go:196 (0x2c1c6e)
/Users/pivotal/go-agent/pipelines/Mac-OSX-Testing/src/github.com/cloudfoundry/cli/Godeps/_workspace/src/github.com/cloudfoundry-incubator/candiedyaml/decode.go:394 (0x2c336d)
/Users/pivotal/go-agent/pipelines/Mac-OSX-Testing/src/github.com/cloudfoundry/cli/Godeps/_workspace/src/github.com/cloudfoundry-incubator/candiedyaml/decode.go:193 (0x2c1d38)
/Users/pivotal/go-agent/pipelines/Mac-OSX-Testing/src/github.com/cloudfoundry/cli/Godeps/_workspace/src/github.com/cloudfoundry-incubator/candiedyaml/decode.go:171 (0x2c199e)
/Users/pivotal/go-agent/pipelines/Mac-OSX-Testing/src/github.com/cloudfoundry/cli/Godeps/_workspace/src/github.com/cloudfoundry-incubator/candiedyaml/decode.go:137 (0x2c146d)
/Users/pivotal/go-agent/pipelines/Mac-OSX-Testing/src/github.com/cloudfoundry/cli/tmp/cli_gopath/src/github.com/cloudfoundry/cli/cf/manifest/manifest_disk_repository.go:82 (0xb13ef)
/Users/pivotal/go-agent/pipelines/Mac-OSX-Testing/src/github.com/cloudfoundry/cli/tmp/cli_gopath/src/github.com/cloudfoundry/cli/cf/manifest/manifest_disk_repository.go:50 (0xb0f72)
/Users/pivotal/go-agent/pipelines/Mac-OSX-Testing/src/github.com/cloudfoundry/cli/tmp/cli_gopath/src/github.com/cloudfoundry/cli/cf/manifest/manifest_disk_repository.go:33 (0xb0e13)
/Users/pivotal/go-agent/pipelines/Mac-OSX-Testing/src/github.com/cloudfoundry/cli/tmp/cli_gopath/src/github.com/cloudfoundry/cli/cf/manifest/manifest.go:1 (0xb300e)
/Users/pivotal/go-agent/pipelines/Mac-OSX-Testing/src/github.com/cloudfoundry/cli/tmp/cli_gopath/src/github.com/cloudfoundry/cli/cf/commands/application/push.go:377 (0x23e2c3)
/Users/pivotal/go-agent/pipelines/Mac-OSX-Testing/src/github.com/cloudfoundry/cli/tmp/cli_gopath/src/github.com/cloudfoundry/cli/cf/commands/application/push.go:356 (0x23e062)
/Users/pivotal/go-agent/pipelines/Mac-OSX-Testing/src/github.com/cloudfoundry/cli/tmp/cli_gopath/src/github.com/cloudfoundry/cli/cf/commands/application/push.go:120 (0x23ada2)
/Users/pivotal/go-agent/pipelines/Mac-OSX-Testing/src/github.com/cloudfoundry/cli/tmp/cli_gopath/src/github.com/cloudfoundry/cli/cf/command_runner/runner.go:50 (0xa70a9)
/Users/pivotal/go-agent/pipelines/Mac-OSX-Testing/src/github.com/cloudfoundry/cli/tmp/cli_gopath/src/github.com/cloudfoundry/cli/cf/command_runner/runner.go:1 (0xa73d4)
/Users/pivotal/go-agent/pipelines/Mac-OSX-Testing/src/github.com/cloudfoundry/cli/tmp/cli_gopath/src/github.com/cloudfoundry/cli/cf/app/app.go:76 (0x8ecce)
/Users/pivotal/go-agent/pipelines/Mac-OSX-Testing/src/github.com/cloudfoundry/cli/Godeps/_workspace/src/github.com/codegangsta/cli/command.go:101 (0xcb140)
/Users/pivotal/go-agent/pipelines/Mac-OSX-Testing/src/github.com/cloudfoundry/cli/Godeps/_workspace/src/github.com/codegangsta/cli/app.go:125 (0xc9654)
/Users/pivotal/go-agent/pipelines/Mac-OSX-Testing/src/github.com/cloudfoundry/cli/main/main.go:154 (0x3729)
/Users/pivotal/go-agent/pipelines/Mac-OSX-Testing/src/github.com/cloudfoundry/cli/main/main.go:91 (0x2eb9)
/usr/local/go/src/pkg/runtime/proc.c:220 (0x1804f)
/usr/local/go/src/pkg/runtime/proc.c:1394 (0x1a580)
So obviously someethign is wrong with my yaml file. But I don't know what. Here's what I have:
domain: cloudeast.mycompany.com
nats: secret
machines:
- 10.10.100.10
password: secret
port: 4222
user: nats
networks:
apps: default
management: default
memcache_broker:
broker_password: secret
memcache:
vip: 10.100.100.100:11211
servers:
- 10.100.100.101:11211
- 10.100.100.102:11211
plans:
small:
name: small
description: A small cache with no redundency
free: true
memcache_hazelcast:
heap_size: 512M
host:
src_api: https://memcache-hazelcast.cf-deployment.com
password: secret
memcache:
secret_key: secret
hazelcast:
max_cache_size: 268435456
machines:
zone1:
- 10.100.100.101
zone2:
- 10.100.100.102
plans:
small:
backup: 0
async_backup: 1
eviction_policy: LRU
max_idle_seconds: 86400
max_size_used_heap: 100
medium:
backup: 0
async_backup: 1
eviction_policy: LRU
max_idle_seconds: 86400
max_size_used_heap: 200
Could I get some help with why this yaml file isn't parsing correctly?
On the first line you have a scalar (domain) followed by a colon (:) followed by a scalar (cloudeast.mycompany.com), this means at the top, non indented, level you start a mapping and domain is a key scalar and cloudeast.mycompany.com a value scalar.
On the next line you should, once more, have a key scalar and it has to be indented at the same level as the previous line (or you finish the top-level mapping with an end of stream (...) or start a new document (---). You start an indented value that is a mapping and the parser doesn't know what you want to do with that.
One can only try and guess what you try to do. If cloudeast.mycompany.com is the name of the domain, you should make that a new indented scalar value (with key name), then the same indentation error occurs for the key machines. and following 3 keys, after that the file is OK:
domain:
name: cloudeast.mycompany.com # scalar key "name" added
nats: secret
machines: # this scalar key and next 3 dedented
- 10.10.100.10
password: secret
port: 4222
user: nats
# from here everything as it was
networks:
apps: default
management: default
memcache_broker:
broker_password: secret
memcache:
vip: 10.100.100.100:11211
servers:
- 10.100.100.101:11211
- 10.100.100.102:11211
plans:
small:
name: small
description: A small cache with no redundency
free: true
memcache_hazelcast:
heap_size: 512M
host:
src_api: https://memcache-hazelcast.cf-deployment.com
password: secret
memcache:
secret_key: secret
hazelcast:
max_cache_size: 268435456
machines:
zone1:
- 10.100.100.101
zone2:
- 10.100.100.102
plans:
small:
backup: 0
async_backup: 1
eviction_policy: LRU
max_idle_seconds: 86400
max_size_used_heap: 100
medium:
backup: 0
async_backup: 1
eviction_policy: LRU
max_idle_seconds: 86400
max_size_used_heap: 200
Of course you also leave out the cloudeaset.mycompany.com value. In both the cases the top level of the YAML file will be a mapping with a single key scalar: domain. The value for that key is again a mapping with keys like nats, networks, memcache_broker

Resources