-
-
Notifications
You must be signed in to change notification settings - Fork 2
Closed
Description
This is a follow up to #8.
I'm opening this proposal to gather questions we would like to ask users about ChatOps.
Motivation
We would like to gather feedback from users about exactly how they use ChatOps to determine if a more integrated, Python-based implementation would better serve their use cases, or if we should continue to develop the current separate, Javascript-based hubot-stackstorm implementation.
Potential Survey Questions
Here is the initial list of questions that I have come up with:
- How long have you been using StackStorm and/or EWC?
- 0-6-months
- 6-12 months
- 1-2 years
- 2+ years
- How large is your organization?
- 1-10
- 10-100
- 100-1000
- 1000-10000
- 10000+
- How many ChatOps users within your organization do you have?
- 1-10
- 10-100
- 100-1000
- 1000-10000
- 10000+
- Do you use StackStorm-flavored ChatOps?
- Yes
- No
- If you don't use ChatOps, what are the blockers in your adoption? (select all that apply)
- Missing chat adapter
- No RBAC
- No HA
- Buggy, not stable enough
- Haven't tried it yet
- Didn't work
- Other (please specify)
- Do you currently use any chat bots outside of StackStorm?
- Yes
- No
- Have you written any chat bots outside of StackStorm?
- Yes
- No
- Which domain/s are you using ChatOps in? (select all that apply)
- Network
- Security
- Infrastructure
- Cloud/SaaS
- Other (please specify)
- How do you use StackStorm's ChatOps? (select all that apply)
- Action aliases
- Integrating hubot-stackstorm into a custom hubot bot
- Using err-stackstorm with Errbot
- Something else (please explain what you do)
- What types of tasks do you commonly execute/use via ChatOps? (select all that apply)
- One-way notifications
- Querying systems/statistics
- Perform arbitrary StackStorm actions
- Teach/collaborate with other team members
- Start deployments
- How important is user-defined ChatOps in your organization?
- Mission critical
- Makes things easier/faster/more efficient
- Just another way to run commands
- We have a few aliases, but nobody uses them
- ChatOps is configured, but nobody has made any aliases
- ChatOps isn't even configured or installed
- Hinders actual work
- What chat provider/s do you currently use with StackStorm ChatOps? (select all that you currently use)
- Slack
- Mattermost v4
- Mattermost v5
- Rocket.chat
- Cisco Spark or Webex Teams
- Microsoft Teams (via BotFramework)
- HipChat
- Something else (please explain)
- If you are considering changing your chat provider/s which one/s are you currently considering? (select all that apply)
- Slack
- Mattermost v4
- Mattermost v5
- Rocket.chat
- Cisco Spark or Webex Teams
- Microsoft Teams (via BotFramework)
-
HipChat- not including this one, since it's reaching EOL on June 30th, 2020 and we're ripping out the adapter then as well - Something else (please explain)
Excessive for Survey. Click to expand.
- What ChatOps alias features have you used/are currently using? (select all that apply)
- Using the
!helpcommand in a ChatOps channel - Alias formats
# Simple usage formats: - run {{ cmd }} on {{ hosts }}
# Complex usage formats: - "execute order 51" - display: "run {{ cmd }} on {{ hosts }}" representation: - "(run|execute) {{ cmd }}( on {{ hosts=localhost }})?[!.]?" # timeout parameter not explicitly listed - "run remote command {{ cmd }} on {{ hosts }}" immutable_parameters: timeout: 30 # seconds sudo_password: "{{ st2kv('system.dev_server_sudo_password', decrypt=true) }}"
- Using additional ChatOps parameters in workflows
tasks: task1: action: core.echo input: message: "[<% ctx().source_channel %>] <% ctx().action_context.api_user %> (<% ctx().action_context.user %>)"
- Automatic acknowledgements
# Simple usage ack: format: "acknowledged!"
# Complex usage ack: format: "Executing `{{ actionalias.ref }}`, the execution ID is `{{ execution.id }}`" enabled: false
- Result formats
# Simple usage result: format: | Ran command `{{ execution.parameters.cmd }}` and {{ execution.result | length }} hosts. Details are as follows: {% for host in execution.result -%} Host: `{{ host }}` ---> stdout: {{ execution.result[host].stdout }} ---> stderr: {{ execution.result[host].stderr }} {%+ endfor %}
# Complex usage result: format: | Action completed! {~} Ran command `{{ execution.parameters.cmd }}` and {{ execution.result | length }} hosts. Details are as follows: {% for host in execution.result -%} Host: `{{ host }}` ----> stdout: {{ execution.result[host].stdout }} ----> stderr: {{ execution.result[host].stderr }} {%+ endfor %} enabled: true
- Attachments with
extra(Slack, Mattermost, and Rocket.chat)# Simple usage result: # ... extra: slack: image_url: "https://i.imgur.com/Gb9kAYK.jpg" fields: - title: Kitten headcount value: Eight. short: true - title: Number of boxes value: A bunch. short: true color: "#FF0000"
# Complex usage result: # ... extra: slack: image_url: "https://i.imgur.com/Gb9kAYK.jpg" fields: - title: Kitten headcount value: Eight. short: true - title: Number of boxes value: A bunch. short: true color: "{{ execution.parameters.color }}" mattermost: color: "{{ execution.parameters.mm_color }}" rocketchat: color: "{{ execution.parameters.rc_color }}" audit: true # additional property, passed directly to chat provider adapter
- Inquiries with ChatOps
- Looked through ChatOps logs
- Using ChatOps behind a proxy
- Using an external chat adapter like hubot-yammer
- BYO Hubot (eg: Bring Your Own Hubot) by using hubot-stackstorm in your own hubot instance
- Using the
- For any current ChatOps features that you have not used yet, do you expect to use any features in the future? (select all that apply)
- Using the
!helpcommand in a ChatOps channel - Alias formats
# Simple usage formats: - run {{ cmd }} on {{ hosts }}
# Complex usage formats: - "execute order 51" - display: "run {{ cmd }} on {{ hosts }}" representation: - "(run|execute) {{ cmd }}( on {{ hosts=localhost }})?[!.]?" # timeout parameter not explicitly listed - "run remote command {{ cmd }} on {{ hosts }}" immutable_parameters: timeout: 30 # seconds sudo_password: "{{ st2kv('system.dev_server_sudo_password', decrypt=true) }}"
- Using additional ChatOps parameters in workflows
tasks: task1: action: core.echo input: message: "[<% ctx().source_channel %>] <% ctx().action_context.api_user %> (<% ctx().action_context.user %>)"
- Automatic acknowledgements
# Simple usage ack: format: "acknowledged!"
# Complex usage ack: format: "Executing `{{ actionalias.ref }}`, the execution ID is `{{ execution.id }}`" enabled: false
- Result formats
# Simple usage result: format: | Ran command `{{ execution.parameters.cmd }}` and {{ execution.result | length }} hosts. Details are as follows: {% for host in execution.result -%} Host: `{{ host }}` ---> stdout: {{ execution.result[host].stdout }} ---> stderr: {{ execution.result[host].stderr }} {%+ endfor %}
# Complex usage result: format: | Action completed! {~} Ran command `{{ execution.parameters.cmd }}` and {{ execution.result | length }} hosts. Details are as follows: {% for host in execution.result -%} Host: `{{ host }}` ----> stdout: {{ execution.result[host].stdout }} ----> stderr: {{ execution.result[host].stderr }} {%+ endfor %} enabled: true
- Attachments with
extra(Slack, Mattermost, and Rocket.chat)# Simple usage result: # ... extra: slack: image_url: "https://i.imgur.com/Gb9kAYK.jpg" fields: - title: Kitten headcount value: Eight. short: true - title: Number of boxes value: A bunch. short: true color: "#FF0000"
# Complex usage result: # ... extra: slack: image_url: "https://i.imgur.com/Gb9kAYK.jpg" fields: - title: Kitten headcount value: Eight. short: true - title: Number of boxes value: A bunch. short: true color: "{{ execution.parameters.color }}" mattermost: color: "{{ execution.parameters.mm_color }}" rocketchat: color: "{{ execution.parameters.rc_color }}" audit: true # additional property, passed directly to chat provider adapter
- Inquiries with ChatOps
- Looked through ChatOps logs
- Using ChatOps behind a proxy
- Using an external chat adapter like hubot-yammer
- BYO Hubot (eg: Bring Your Own Hubot) by using hubot-stackstorm in your own hubot instance
- Using the
- What new feature/s would you like to see in ChatOps?
- Better integration with the rest of StackStorm
- Easier configuration/troubleshooting
- HA
- Threaded conversations/responses
- Uploading files via ChatOps
- Ability to query and post graphs and diagrams
- RBAC for ChatOps
- Better inquiries support
- NLP (natural language processing) or NLU (natural language understanding)
- More interactivity options in action aliases (Slack blocks, MS Teams cards, etc.)
- Other (please specify)
- Rank these new features, with the most important feature at the top (if you don't care, you can leave the ranking blank)
- Better integration with the rest of StackStorm
- Easier configuration/troubleshooting
- HA
- Threaded conversations/responses
- Uploading files via ChatOps
- RBAC for ChatOps
- Better inquiries support
- NLP (natural language processing) or NLU (natural language understanding)
- More interactivity options in action aliases (Slack blocks, MS Teams cards, etc.)
- Other (please specify)
- What does StackStorm get right with its ChatOps implementation?
- What does StackStorm get wrong with its ChatOps implementation?
- Is there anything we should do to make it easier to use ChatOps with StackStorm?
- Is there anything we absolutely should NOT do regarding ChatOps in StackStorm?
- Would you be willing to have a deeper discussion with us about your ChatOps use case/s?
- Would you be willing to help us refactor, redesign, develop, or test new ChatOps features?
punkrokk, cognifloyd, arm4b and nzlosh