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

Refactor Agent configuration #927

Closed
yurishkuro opened this issue Jul 10, 2018 · 10 comments
Closed

Refactor Agent configuration #927

yurishkuro opened this issue Jul 10, 2018 · 10 comments
Assignees
Labels
enhancement help wanted Features that maintainers are willing to accept but do not have cycles to implement

Comments

@yurishkuro
Copy link
Member

yurishkuro commented Jul 10, 2018

Requirement - what kind of business use case are you trying to solve?

Enable gRPC communications between agent and collector (main issue #773).

Problem - what in Jaeger blocks you from solving the requirement?

The agent configuration app.Builder directly embeds TChannel-based reporter configuration app.reporter.tchannel.Builder, rather than making it pluggable like --processor.{format}.*** configurations. This makes the following flags into top-level options, even though they may not necessarily make sense to non-TChannel reporters:

--collector.host-port
--discovery.conn-check-timeout
--discovery.min-peers

Proposal - what do you suggest to solve the problem or improve the existing situation?

Create a nested hierarchy of reporters, e.g. to support the following config:

reporters:
    - kind: tchannel
      # tchannel-specific parameters, e.g.
      collector:
        hostPort: ...
      discovery:
        minPeers: 10
    - kind: grps
      # grpc-specific parameters

Any open questions to address

This will be a breaking change since the command line will be affected. We could potentially keep support for the old three options as "deprecated".

@isaachier
Copy link
Contributor

My only issue with gRPC is how we can use a streaming protocol that we have no good way of instrumenting. From what I understand, there is no good hook for adding a context to a streaming request. If we have a solution to this, I would feel fine with this proposal.

@yurishkuro
Copy link
Member Author

This issue is not about gRPC (#773 is), but about refactoring agent to allow different output transports.

@isaachier
Copy link
Contributor

OK so then this is totally a non-issue.

@jpkrohling jpkrohling added enhancement help wanted Features that maintainers are willing to accept but do not have cycles to implement good first issue Good for beginners labels Jul 12, 2018
@danehans
Copy link

@yurishkuro I would like to work on this issue.

@yurishkuro
Copy link
Member Author

I am not sure if it's really a "good first issue", because it requires somewhat significant refactoring of the agent organization.

@danehans you can give it a try. I would suggest posting a summary of the planned changes here first before making them.

@yurishkuro yurishkuro removed the good first issue Good for beginners label Jul 14, 2018
@danehans
Copy link

@yurishkuro thanks for the feedback. I've started digging in. If I get over my head, I'll send an update and work on a different issue. As you mention, I'll provide a summary of the changes before proceeding.

@jpkrohling
Copy link
Contributor

@danehans if you get blocked, let us know.

@pavolloffay
Copy link
Member

pavolloffay commented Nov 12, 2018

So new flags are

--reporter.tchannel.collector.host-port string              comma-separated string representing host:ports of a static list of collectors to connect to directly (e.g. when not using service discovery)
      --reporter.tchannel.discovery.conn-check-timeout duration   sets the timeout used when establishing new connections (default 250ms)
      --reporter.tchannel.discovery.min-peers int                 if using service discovery, the min number of connections to maintain to the backend (default 3)

I am wondering whether --reporter.tchannel.collector.host-port could be renamed to --reporter.tchannel.host-port The collector seems a bit redundant there. cc @yurishkuro

@yurishkuro
Copy link
Member Author

agreed

@pavolloffay
Copy link
Member

Will remove and cut 1.8

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement help wanted Features that maintainers are willing to accept but do not have cycles to implement
Projects
None yet
Development

No branches or pull requests

5 participants