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

Change the service config to allow multiple adapters to be specified for a single aspect #46

Closed
ZackButcher opened this issue Feb 21, 2017 · 1 comment
Assignees
Milestone

Comments

@ZackButcher
Copy link
Contributor

Right now the service config ties aspect configuration to a single adapter. This means that to configure e.g. two metrics backends, I have to duplicate substantial configuration:

rules:
- selector: true
  aspects:
  - kind: metrics
    adapter: "statsd"
    params:
      metrics:
      - descriptor_: "request_count"
        value: "1"
        labels:
          source: "source.name"
          target: "target.name"
          service: "api.name"
          response_code: "response.code"
      - descriptor_:  "request_latency"
        value: "response.latency"
        labels:
          source: "source.name"
          target: "target.name"
          service: "api.name"
  - kind: metrics
    adapter: "prometheus"
    params:
      metrics:
      - descriptor_: "request_count"
        value: "1"
        labels:
          source: "source.name"
          target: "target.name"
          service: "api.name"
          response_code: "response.code"
      - descriptor_:  "request_latency"
        value: "response.latency"
        labels:
          source: "source.name"
          target: "target.name"
          service: "api.name"

We should change the adapter field to be a repeated string instead, so that aspect level configuration can be tied to multiple adapters:

rules:
- selector: true
  aspects:
  - kind: metrics
    adapters:
    - statsd
    - prometheus
    params:
      metrics:
      - descriptor_: "request_count"
        value: "1"
        labels:
          source: "source.name"
          target: "target.name"
          service: "api.name"
          response_code: "response.code"
      - descriptor_:  "request_latency"
        value: "response.latency"
        labels:
          source: "source.name"
          target: "target.name"
          service: "api.name"

Longer term, I think we should think about separating the configuration for which adapters are executed for a given aspect under a specific selector from the configuration of that aspect under that selector.

@jasminejaksic-zz jasminejaksic-zz added this to the api beta milestone Mar 23, 2017
@geeknoid
Copy link
Contributor

No longer relevant with new mixer model.

nacx added a commit to nacx/api that referenced this issue Feb 23, 2022
* Use name references for nested teams

* Add sync tenants method for teamsync

* Remove enum validation

* Remove enum validation

* Unique number in options to avoid conflixts with the deprecated version

* Single property for team membership

* Rebased to latest master
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants