yelp / terraform-provider-signalform Goto Github PK
View Code? Open in Web Editor NEWSignalForm is a terraform provider to codify SignalFx detectors, charts and dashboards
License: Apache License 2.0
SignalForm is a terraform provider to codify SignalFx detectors, charts and dashboards
License: Apache License 2.0
We have a (somewhat simple) signalform_dashboard
resource being created.
See gist: https://gist.github.com/cb-tjuricek/5d4711493c061f83da0de0e3b93fe380
When attempting to apply, even with the TF_LOG=TRACE
variable set, the only information we receive is the following:
2018-10-19T09:01:11.386-0700 [DEBUG] plugin.terraform-provider-signalform: 2018/10/19 09:01:11 [ERR] plugin: stream copy 'stderr' error: stream closed
2018-10-19T09:01:11.386-0700 [DEBUG] plugin.terraform-provider-signalform: 2018/10/19 09:01:11 [ERR] plugin: plugin server: accept unix /Users/tjuricek/Desktop/reno/plugin158257377: use of closed network connection
* signalform_dashboard.cache_layer: For the resource CbDefense Central Cache Layer SignalFx returned status 400:
{
"code" : 400,
"message" : "Failed to deserialize payload"
}
This is a little hard to interpret - is there a way to get more details from the plugin?
I've double checked all chart IDs referenced, and they exist and the charts themselves all appear to be created. It's only this dashboard resource failing.
Is this in the roadmap or there is API limitations that prevent to implement this feature?
Hello! I've just got email that SignalFx introduced official terraform provider. Did you know anything about it? https://www.signalfx.com/blog/official-terraform-provider/
P.S. And it seems that current provider disappeared from community providers.
Hi!
I'm trying to create detector chart and could not find a way to add visualization options (color metrics with different colors, units etc.). I see this options available on the chart.
Maybe there is a way to create a chart and then reference chart in the detector resource. Any suggestions?
The SignalFlow detector model supports tags and teams, but signalform doesn't seem to support it
The .netrc
file is quite a common way to handle authentication credentials for any host.
We are using this way for handling auth credentials for various machines in our network.
Is it planned to add .netrc
support?
I suggest filling out the form and getting the project added to the community index so that this project receives more visibility. I only knew to search for it because of SignalFX support and it's a much better option than the signalfx-detector-syncer tool.
https://www.terraform.io/docs/providers/type/community-index.html
Do you have something in the roadmap to add new ORG Tokens? It'd be really useful to have that working.
Before I do the work to implement it I wondered if you would be open to me providing a PR which adds a Dockerfile to this project to allow building in a docker container instead of needing build tools installed locally?
I would also propose to add a make docker
target which will run the necessary docker commands to build the provider.
SignalFx released compound conditions in detectors and it would be great to support the feature in signalform as well. The documentation linked to the news was https://docs.signalfx.com/en/latest/detect-alert/alert-condition-reference/custom-threshold.html
Currently, the notifications associated with a detector rule are stored as a list of strings:
rule {
description = "maximum > 60 for 30m"
severity = "Critical"
detect_label = "Processing old messages 30m"
notifications = ["Email,[email protected]"]
}
I would like to propose storing them as objects instead:
rule {
description = "maximum > 60 for 30m"
severity = "Critical"
detect_label = "Processing old messages 30m"
notification {
type = "Email"
email = "[email protected]"
}
}
or perhaps even:
rule {
description = "maximum > 60 for 30m"
severity = "Critical"
detect_label = "Processing old messages 30m"
email {
email = "[email protected]"
}
}
Motivation for this change: I am planning to add support for the signalfx teams api to signalform, and teams support a notificationlist which (to my understanding) uses the same object as detector rules. It would be useful to have the same structure in both places. In addition, this approach would more closely reflect the underlying API's data model, and would allow for more types of notifications to be supported. (For example, signalform does not currently support sending notifications to a team, which could have its own notification configuration.)
What are your thoughts on this change? I am happy to implement it myself if this is something you'd be willing to accept.
Today, the signalform provider only supports the us0 realm. The api endpoint should be given as a parameter, similar to how the auth token is.
The readme states "Please note that this provider only works with terraform 0.9." but in testing it appears to be working on Terraform v0.11.2. Is 0.9 a minimum requirement, the only version being tested or are their known issues on the new versions?
The Slack notification is silently failing. The Pagerduty one is linked but the Slack one is not linked when I look at them in the SignalFX UI.
This is the code that I have that creates the detectors.
resource "signalform_detector" "site_capacity" {
provider = "signalform"
count = "${length(var.regions)}"
name = "${var.regions[count.index]} stack capacity"
max_delay = 30
description = "Alerts when stack capacity in a region is full"
program_text = <<-EOF
[.....]
detect("Site Capacity @ 95%", when(site_count > site_capacity * 0.95, lasting='5s'))
detect("Site Capacity @ 90%", when(site_count > site_capacity * 0.90, lasting='5s'))
EOF
rule {
description = "active when site count exceeds 95% site capacity"
severity = "Critical"
detect_label = "Site Capacity @ 95%"
notifications = ["PagerDuty,RedactedId"]
}
rule {
description = "active when site count exceeds 90% site capacity"
severity = "Major"
detect_label = "CDE Site Capacity @ 90%"
notifications = ["Slack,RedactedId,#channelname"]
}
}
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.