GithubHelp home page GithubHelp logo

ketansingh11 / plugin-developer-assessment Goto Github PK

View Code? Open in Web Editor NEW

This project forked from stackvista/plugin-developer-assessment

0.0 2.0 0.0 84.24 MB

Assessment for the role of plugin developer at StackState.

Shell 100.00%

plugin-developer-assessment's Introduction

StackState plugin developer assessment

Background

StackState is a new brand of IT Operations tool that is designed to rapidly solve or prevent down-time of IT systems. StackState does this by aggregating information from various sources to produce a real-time, up-to-date picture of an IT landscape and the associated state of each of it's components. Information is retrieved and stored from source systems via plugins. A StackState plugin is written in Python and retrieves information from a target system, process it and sends it to the StackState server.

In this assessment you will code a simple StackState plugin for Twitter.

Objective

Write a StackState plugin (also called a "check" or "agent check") that retrieves information from Twitter and sends the information into a StackState server.

There are a few moving parts to this assignment:

  • the Twitter service and it's public REST API, the source of the information
  • a StackState agent instance that is able to collect information and send it to a StackState instance
  • a plugin for the StackState agent that knows how to retrieve information from Twitter (this is what you will write)
  • a StackState instance to collect the data, the target for the information

Twitter

You can use the public Twitter REST API for this assignment as well as your own personal Twitter account. If you don't have one, you can create one for free.

Authentication for the REST API can be done using OAuth application owner access tokens.

Agent

The StackState agent is open-source and can be downloaded and installed separately. There is a public git repository that contains a Vagrant image for developing and testing with the STS agent, see this repository.

Plugin

Plugins are written in Python and will run inside the StackState agent. Documentation about how to write a StackState agent plugin is also available.

StackState instance

Use the StackState instance available at assessment.stackstate.io. You will receive a unique API key to use when communicating with the StackState instance.

Assignment

Implement a StackState agent plugin that retrieves information from Twitter and sends this information to StackState.

  • Create a metric (count) of a particular set of messages on Twitter, for instance direct messages to yourself or messages mentioning the @gostackstate Twitter account.
  • Create an event with the latest 10 messages in your account's timeline and send it to StackState. Make sure to report every unique Twitter message only once.

Testing

When you've written a new check, you'll want to test that it works properly.

One way to test it is to write an integration test for it. Our documentation describes how to do that.

You can also run the agent against the StackState assessment instance. To do so, use these settings:

dd_url: https://assessment.stackstate.io/stsAgent/
api_key: <your API key>

Vagrant

This repository contains a Vagrant setup so you can get started with the assessment quickly. Using this setup, you can spin up a virtual machine in VirtualBox with a fully functional StackState agent install.

To start the virtual machine, use:

vagrant up

Log into the box using:

vagrant ssh

You can change to root with the command:

sudo su -

once logged into the VM.

Notes

Keep the following in mind:

  • the Twitter REST API implements rate limiting, be sure to not exceed the limit

Delivery

To submit the assessment, email us the Python source code for the plugin as well as the API key that you used.

plugin-developer-assessment's People

Contributors

mpvvliet avatar nittmurugan avatar rb3ckers avatar

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.