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 component: receiver/nsxtreceiver #9568

Closed
schmikei opened this issue Apr 28, 2022 · 2 comments
Closed

New component: receiver/nsxtreceiver #9568

schmikei opened this issue Apr 28, 2022 · 2 comments
Labels
Accepted Component New component has been sponsored

Comments

@schmikei
Copy link
Contributor

schmikei commented Apr 28, 2022

I'd like to author a component that receives metrics and logs for NSX-T.

The purpose and use-cases of the new component

The receiver should be able to receive metrics important to run virtual networking using NSX-T. The receiver is planned to ingest metrics via the NSX Rest API. As for logs, it should ingest them via wrapping the syslogreceiver and providing this official documentation on how to set up a syslog forwarder for NSX.

Example configuration for the component

I think the config struct would look something like this

// Config is the configuraiton for the NSX receiver
type Config struct {
	config.ReceiverSettings `mapstructure:",squash"`
	MetricsConfig           MetricsConfig `mapstructure:"metrics"`
	LoggingConfig           LoggingConfig `mapstructure:"logs"`
}

// MetricsConfig is the metrics configuration portion of the nsxreceiver
type MetricsConfig struct {
	scraperhelper.ScraperControllerSettings `mapstructure:",squash"`
	confighttp.HTTPClientSettings           `mapstructure:",squash"`
	Settings                                metadata.MetricsSettings `mapstructure:"settings"`
	Username                                string                   `mapstructure:"username"`
	Password                                string                   `mapstructure:"password"`
}

// LoggingConfig is the configuration of a syslog receiver
type LoggingConfig struct {
	*syslogreceiver.SysLogConfig `mapstructure:",squash"`
}
receivers:
  nsx:
    metrics:
      endpoint: https://nsx-34795.cf5e88ac.australia-southeast1.gve.goog
      username: admin
      password: password
      settings: ...
      tls: ...
      timeout: 60s
    logs:
      listen_address: 0.0.0.0:5120

exporters:
  file:
    path: "./content.json"

service:
  pipelines:
    metrics:
      receivers: [nsx]
      exporters: [file]
    logs:
      receivers: [nsx]
      exporters: [file]

Focused metrics I would like to grab from the API

[
  "nsx.interface.packet.count",
  "nsx.interface.throughput",
  "nsx.node.cache.memory.usage",
  "nsx.node.load_balancer.utilization",
  "nsx.node.memory.usage",
  "nsx.node.cpu.utilization",
  "nsx.node.disk.usage",
  "nsx.node.disk.utilization"
]

Telemetry data types supported

metrics && logs

Sponsor (Optional)

Need a sponsor! Would love to work with the community to help achieve this!

@djaglowski djaglowski added the Sponsor Needed New component seeking sponsor label May 2, 2022
@dashpole
Copy link
Contributor

dashpole commented May 4, 2022

I'll be sponsoring this component. As discussed in the meeting, we probably don't need the syslog logging receiver embedded in it.

@schmikei
Copy link
Contributor Author

Closed by #9738

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Accepted Component New component has been sponsored
Projects
None yet
Development

No branches or pull requests

3 participants