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

[Meta] Add FunctionBeat to run beat on serverless infrastructure #7880

Closed
18 of 42 tasks
ph opened this issue Aug 6, 2018 · 6 comments
Closed
18 of 42 tasks

[Meta] Add FunctionBeat to run beat on serverless infrastructure #7880

ph opened this issue Aug 6, 2018 · 6 comments
Assignees

Comments

@ph
Copy link
Contributor

ph commented Aug 6, 2018

Beatless is a new beat designed to beat lightweight and be able to run on existing cloud infrastructure. The first version will focus on AWS. The development of the feature is currently under x-pack sub folder. And the work is merged into a feature branch https://github.com/elastic/beats/tree/feature/beatless

Features:

  • First providers AWS and Local
  • Accepts new events from:
    • STDIN (mostly used for easier testing)
    • Cloudwatch Logs
    • Kinesis
    • SQS
    • API Gateway
  • The architecture should support running multiple functions concurrently but provider implementation can restrict that.
  • A provider is a singleton in the configuration.

Tasks:

Monitoring / Telemetry

  • Report monitoring events as part of the logs
  • Limit the rate of reporting
  • Allow a function to monitor monitoring events (it should be a module)
  • Make it easy to push a function to acts as a monitoring collector (part of the CLI)

Medium priority

Low priority

  • Disable features for faster startup
    • Seccomp
    • Logging to file
    • Remove unsupported spooling to disk
    • Remove unsupported

Nice to have:

Config Architecture:

beatless.provider.aws:
  enabled: true
  # .... Provider configuration
  # Credentials for pushing the function.
  functions:
    - type: cloudwatch

      stream: messages
      fields:
        logs_type: cloudwatch-messages
      limits:
        timeout: 5s
        concurency: 20
    - type: kinesys
      name: kinesis-ingress
      stream: firehos
      processors:  #....
    - type: s3
      bucket: logs.elastic.co

output.elasticsearch:
  host: abc
  username: elastic
  password: abc123
@ph ph self-assigned this Aug 6, 2018
@ph
Copy link
Contributor Author

ph commented Aug 6, 2018

Functions can embed customs processors.

@ph
Copy link
Contributor Author

ph commented Aug 31, 2018

Added a notes concerning monitory of beatless, it actually make sense that we use a module which will be preconfigured to work on event of data.

Probably a custom processor that will drop events that we don't need and just extract the monitoring data or drop + Dissect.

@ph
Copy link
Contributor Author

ph commented Sep 10, 2018

Before working on the CLI integration I'd like to have some integration tests done, in #8170 we support the following trigger on AWS: SQS, Cloudwatch Logs, Kinesis and the API Gateway.

The following are the steps required to be able to run and asserts that a function is actually doing the right thing.

  • build beatless
  • push beatless to AWS
  • Create data for the specific trigger (SQS, Kinesis, ApiGateway)
  • teardown the function
  • Assert the data in ES

The above will required:

  • AWS credentials available in the test environment
  • An ES cluster available.

If possible I want something close to how testing modules works in Filebeat.

@ph ph changed the title [Meta] Add beatless to run beat on serverless infrastructure [Meta] Add FunctionBeat to run beat on serverless infrastructure Oct 18, 2018
@ph
Copy link
Contributor Author

ph commented Oct 18, 2018

@tsg @monicasarbu The todo items in this issue are up to date.

@ph
Copy link
Contributor Author

ph commented Oct 31, 2018

I am Currently working on integration tests starting with cloudwatch logs see #8850 for the testing plan.

@ph
Copy link
Contributor Author

ph commented Nov 9, 2018

To better focus, I've created another meta for next phase of functionbeat at #9013

@ph ph closed this as completed Nov 9, 2018
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

1 participant