KAFKA-2431: Easier Testing of SSL#217
Conversation
benstopford
commented
Sep 15, 2015
- Allow cipher suites to be specified relevant properties
- Avoid System.exit in ProducerPerformance so this can be externally invoked
- Add command line option so that a default properties can be specified in ConsumerPerformance (needed for ssl properties)
- Allow cipher suites to be specified via properties
- Increase timeout in ConsumerPerformance (useful when running with SSL under load)
- Use a relative default value for the reporting interval in Consumer Performance
- Add option for show-all-stats (includes intermediary and summary stats) in Consumer Performance
There was a problem hiding this comment.
nit: space between if and (.
Also, I would suggest to do if (!cipherSuitesList.isEmpty()) 😉
|
kafka-trunk-git-pr #428 FAILURE |
|
kafka-trunk-git-pr #429 SUCCESS |
There was a problem hiding this comment.
Out of curiosity, why are we doing the isEmpty check here? We don't do the same check when setting the enabledProtocols. It seems to add noise for little benefit given how this is used.
There was a problem hiding this comment.
It's because the enabled protocols have a kafka supplied default value. With the cipher suite I left it up to the JVM.
There was a problem hiding this comment.
Oh I see, if you pass an empty collection, the JDK defaults are no longer used? The change makes sense then. We should probably be using the JDK defaults for enabled protocols by default too IMO, but that can be handled via KAFKA-2456
There was a problem hiding this comment.
Yes - I agree. I don't think overriding the JVM defaults is a good idea unless there is a specific, documented intent.
|
A few mostly minor comments, the rest looks good. The command-line switch option name is something I think is important to address before merging. |
|
kafka-trunk-git-pr #450 SUCCESS |
|
LGTM |
|
kafka-trunk-git-pr #515 SUCCESS |
|
kafka-trunk-git-pr #516 SUCCESS |
|
kafka-trunk-git-pr #517 SUCCESS |
|
kafka-trunk-git-pr #518 FAILURE |
|
kafka-trunk-git-pr #519 FAILURE |
|
kafka-trunk-git-pr #520 FAILURE |
|
kafka-trunk-git-pr #521 FAILURE |
|
kafka-trunk-git-pr #522 FAILURE |
|
kafka-trunk-git-pr #523 FAILURE |
|
tests run locally |
There was a problem hiding this comment.
I know exactly what you mean fella. In fact my first reaction was to just change the behaviour, but it's an external interface so people may have coupled to this behaviour. That's why I went down the additional option route.
There was a problem hiding this comment.
Yes, I understand. It seems like we don't offer strong compatibility guarantees for these scripts though, see discussion in #242. Do you think that people would actually rely on the fact that there is no additional entry with the overall results at the end?
There was a problem hiding this comment.
Quite likely not I expect, but we should overhaul these scripts if we're going down that route. I should add that the way we use jopt a little problematic. We end up overriding the system's default values just because jopt leads you down the line of providing a default value. Lots of the values used don't make much sense. For settings that map directly to kafka properties it would be better if we enforced that mapping explicitly.
There was a problem hiding this comment.
I agree with @ijuma . It seems it's simpler to just always print the final result instead of introducing a new option. This is a change of behavior, but it probably matches most people's expectation. ProducerPerformance is already like that.
|
Addressed comments from above. Also added a few other bits:
|
|
kafka-trunk-git-pr #599 FAILURE |
|
Note that this doesn't merge cleanly anymore. |
|
kafka-trunk-git-pr #600 FAILURE |
- Avoid System.exit in ProducerPerformance so this can be externally invoked - Add command line option so that a default set of properties can be speicfied in ConsumerPerformance (needed for ssl properties) - Allow cipher suites to be specified via properties - Increase timeout in ConsumerPerformance (useful when running with SSL under load) - Use a relative default value for the reporting interval - Add option for show-all-stats (includes intermediary and summary stats)
|
Addressed comments from @ijuma addressed. Rebased. |
|
kafka-trunk-git-pr #601 FAILURE |
- paramaterised test-timeout in the consumer so it's a command line option - added header for Producer/Consumer properties (so it's clear what is being overridden) - added command line option to Producer/Consumer for freeform properties of the format key=val,key=val etc - made linger.ms a command line option for ProducerPerf. This is a key setting. - cleanup based on comments from Jun/Ismael
|
kafka-trunk-git-pr #602 FAILURE |
|
kafka-trunk-git-pr #603 FAILURE |
|
kafka-trunk-git-pr #609 SUCCESS |
There was a problem hiding this comment.
Just noticed that ConsoleProducer has the following:
val producerPropertyOpt = parser.accepts("producer-property", "A mechanism to pass user-defined properties in the form key=value to the producer. ")
.withRequiredArg
.describedAs("producer_prop")
.ofType(classOf[String])
And it uses CommandLineUtils.parseKeyValueArgs(options.valuesOf(propertyOpt)). We probably should be using the same naming and parsing code here.
…ests (apache#217) TICKET = LIKAFKA-41598 LI_DESCRIPTION = This extends the existing integration-test framework by adding a "sister tree" of test-harness classes modified for multi-cluster use. (For now, the client side still supports only cluster 0.) EXIT_CRITERIA = N/A
…ests (apache#305) The original commit in 2.4-li branch is - [LI-HOTFIX] Basic server-side support for multi-cluster integration tests (apache#217) TICKET = LIKAFKA-41598 LI_DESCRIPTION = This extends the existing integration-test framework by adding a "sister tree" of test-harness classes modified for multi-cluster use. (For now, the client side still supports only cluster 0.) EXIT_CRITERIA = N/A Co-authored-by: Greg Roelofs <newt@pobox.com>
…ests (apache#305) The original commit in 2.4-li branch is - [LI-HOTFIX] Basic server-side support for multi-cluster integration tests (apache#217) TICKET = LIKAFKA-41598 LI_DESCRIPTION = This extends the existing integration-test framework by adding a "sister tree" of test-harness classes modified for multi-cluster use. (For now, the client side still supports only cluster 0.) EXIT_CRITERIA = N/A Co-authored-by: Greg Roelofs <newt@pobox.com>
…ests (apache#305) The original commit in 2.4-li branch is - [LI-HOTFIX] Basic server-side support for multi-cluster integration tests (apache#217) TICKET = LIKAFKA-41598 LI_DESCRIPTION = This extends the existing integration-test framework by adding a "sister tree" of test-harness classes modified for multi-cluster use. (For now, the client side still supports only cluster 0.) EXIT_CRITERIA = N/A Co-authored-by: Greg Roelofs <newt@pobox.com>
…pache#217) This reverts commit a100f00, reversing changes made to a035a5f.
…pache#217) This reverts commit a100f00, reversing changes made to a035a5f.
Simplify LME lookup to direct failback only