Giter Club home page Giter Club logo

kivakit's People

Contributors

dependabot[bot] avatar haifeng-z avatar jonathanl-telenav avatar jonathanlocke avatar jwzhou2021 avatar timboudreau avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

kivakit's Issues

Failure gets dropped on floor during app initialization

            SwitchParser<String> bazSwitch = SwitchParser.builder(String.class)
                    .name("baz")
                    .defaultValue("wookie")
//                    .description("A thing that is a thing")
                    .optional()
//                    .converter(new BaseStringConverter<String>(this, str -> str)
//                    {
//                    })
                    .build();

Failure should probably throw an exception if nothing handles or is listening to the failure. Or return a FailureResult that lets the application decide to do that.

Add HTTPS support to JettyServer

What would you like?
JettyServer should support HTTPS by default. Not sure how certificate should be stored/accessed.

Why would you like it?
Secure connection.

problem alarm api

What would you like?
[3:14 AM] Chen, Zhengyun
I want to ask a question and wonder whether you could help. Do you know any monitor & alarming platform in Telenav? The platform is to show the statistics of apis (something like api call duration, successful rate, error rate, error category), and it can send alarming message to the api owner if some condition is reached (like the api error times exceeds 10 times/min). And some other graph charts. The api owner just need to send each api call details to the platform. This is very commonly seen in some big internet companies for services' SLA.

Add KivaKit Java Filesystem

What would you like?
It would be nice to have a "java" project under kivakit-extensions/kivakit-filesystems that gives access to the Java filesystem abstraction (java.nio.file.Filesystem.java). The kivakit-s3fs project should give you a good template to start with. Let me know if you have any difficulties understanding what to do.

Why would you like it?
This will give use fast zip file access with KivaKit's File object and will introduce you to how the kivakit-filesystems module works.

Is there another way?
No

Add interaction diagrams to...

What would you like?

  • kivakit-examples where it makes sense
  • complete hdfs test interaction diagram
  • add interaction diagram for kivakit-configuration
  • add diagram for kivakit-resource that shows how filesystem providers are loaded with FileSystemServiceLoader and used by File.java

Why would you like it?
To help people understand program flow

KivaKit logs should be individually filtered by log level

What would you like?
It would be nice if a log like EmailLog could have a different log level than ConsoleLog

Why would you like it?
Increases flexibility.

Is there another way?
Right now, this is accomplished programmatically by installing a filter.

Exception in kivakit merged gRPC

Description
When I call gRPC in safety service, it throws exception: java.lang.NoClassDefFoundError: kivakit/merged/grpc/io/perfmark/PerfMark.

Reproduce Case
When call gRPC service via BlockingStub, exception will be thrown.

MapMatchingServiceGrpc.MapMatchingServiceBlockingStub graphStub = MapMatchingServiceGrpc.newBlockingStub(channel);
……
MatchingResponse response = graphStub.match(matchingRequest.build());

Stack Trace
[main] INFO kivakit.merged.grpc.io.netty.util.internal.PlatformDependent - Your platform does not provide complete low-level API for accessing direct buffers reliably. Unless explicitly requested, heap buffer will always be preferred to avoid potential system instability.
May 05, 2022 11:15:54 PM io.grpc.stub.ClientCalls$ThreadlessExecutor waitAndDrain
WARNING: Runnable threw exception
java.lang.NoClassDefFoundError: kivakit/merged/grpc/io/perfmark/PerfMark
at [email protected]/io.grpc.internal.ClientCallImpl.(ClientCallImpl.java:105)
at [email protected]/io.grpc.internal.ManagedChannelImpl$RealChannel$1.newCall(ManagedChannelImpl.java:955)
at [email protected]/io.grpc.internal.ManagedChannelImpl$RealChannel.newClientCall(ManagedChannelImpl.java:1144)
at [email protected]/io.grpc.internal.ManagedChannelImpl$RealChannel.access$4500(ManagedChannelImpl.java:936)
at [email protected]/io.grpc.internal.ManagedChannelImpl$RealChannel$PendingCall$1.run(ManagedChannelImpl.java:1106)
at [email protected]/io.grpc.stub.ClientCalls$ThreadlessExecutor.waitAndDrain(ClientCalls.java:740)
at [email protected]/io.grpc.stub.ClientCalls.blockingUnaryCall(ClientCalls.java:149)
at safety.service.microservice/com.telenav.cloud.mapgraph.grpc.v2.mapmatching.MapMatchingServiceGrpc$MapMatchingServiceBlockingStub.match(MapMatchingServiceGrpc.java:135)
at safety.service.microservice/com.telenav.scout.safety.service.api.driving.safety.MatchingProxy.main(MatchingProxy.java:36)
Caused by: java.lang.ClassNotFoundException: kivakit.merged.grpc.io.perfmark.PerfMark
at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:636)
at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:182)
at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:519)
... 9 more

May 06, 2022 9:49:36 AM io.grpc.internal.ManagedChannelImpl$NameResolverListener handleErrorInSyncContext
WARNING: [Channel<1>: (graph-service-tn-osm-na.stg.k8s.mypna.com:9081)] Failed to resolve name. status=Status{code=UNAVAILABLE, description=Unable to resolve host graph-service-tn-osm-na.stg.k8s.mypna.com, cause=java.lang.RuntimeException: java.net.UnknownHostException: graph-service-tn-osm-na.stg.k8s.mypna.com: nodename nor servname provided, or not known
at [email protected]/io.grpc.internal.DnsNameResolver.resolveAddresses(DnsNameResolver.java:223)
at [email protected]/io.grpc.internal.DnsNameResolver.doResolve(DnsNameResolver.java:282)
at [email protected]/io.grpc.internal.DnsNameResolver$Resolve.run(DnsNameResolver.java:318)
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1130)
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:630)
at java.base/java.lang.Thread.run(Thread.java:831)
Caused by: java.net.UnknownHostException: graph-service-tn-osm-na.stg.k8s.mypna.com: nodename nor servname provided, or not known
at java.base/java.net.Inet6AddressImpl.lookupAllHostAddr(Native Method)
at java.base/java.net.InetAddress$PlatformNameService.lookupAllHostAddr(InetAddress.java:932)
at java.base/java.net.InetAddress.getAddressesFromNameService(InetAddress.java:1517)
at java.base/java.net.InetAddress$NameServiceAddresses.get(InetAddress.java:851)
at java.base/java.net.InetAddress.getAllByName0(InetAddress.java:1507)
at java.base/java.net.InetAddress.getAllByName(InetAddress.java:1366)
at java.base/java.net.InetAddress.getAllByName(InetAddress.java:1300)
at [email protected]/io.grpc.internal.DnsNameResolver$JdkAddressResolver.resolveAddress(DnsNameResolver.java:631)
at [email protected]/io.grpc.internal.DnsNameResolver.resolveAddresses(DnsNameResolver.java:219)
... 5 more
}
May 06, 2022 9:49:37 AM io.grpc.internal.ManagedChannelImpl$NameResolverListener handleErrorInSyncContext
WARNING: [Channel<1>: (graph-service-tn-osm-na.stg.k8s.mypna.com:9081)] Failed to resolve name. status=Status{code=UNAVAILABLE, description=Unable to resolve host graph-service-tn-osm-na.stg.k8s.mypna.com, cause=java.lang.RuntimeException: java.net.UnknownHostException: graph-service-tn-osm-na.stg.k8s.mypna.com
at [email protected]/io.grpc.internal.DnsNameResolver.resolveAddresses(DnsNameResolver.java:223)
at [email protected]/io.grpc.internal.DnsNameResolver.doResolve(DnsNameResolver.java:282)
at [email protected]/io.grpc.internal.DnsNameResolver$Resolve.run(DnsNameResolver.java:318)
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1130)
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:630)
at java.base/java.lang.Thread.run(Thread.java:831)
Caused by: java.net.UnknownHostException: graph-service-tn-osm-na.stg.k8s.mypna.com
at java.base/java.net.InetAddress$CachedAddresses.get(InetAddress.java:800)
at java.base/java.net.InetAddress.getAllByName0(InetAddress.java:1507)
at java.base/java.net.InetAddress.getAllByName(InetAddress.java:1366)
at java.base/java.net.InetAddress.getAllByName(InetAddress.java:1300)
at [email protected]/io.grpc.internal.DnsNameResolver$JdkAddressResolver.resolveAddress(DnsNameResolver.java:631)
at [email protected]/io.grpc.internal.DnsNameResolver.resolveAddresses(DnsNameResolver.java:219)
... 5 more
}

NPE in CommandLineParser.exit()

Exception in thread "main" java.lang.NullPointerException: Cannot invoke "com.telenav.kivakit.commandline.CommandLineParser.exit(String, Object[])" because "this.parent" is null
	at com.telenav.kivakit.commandline.SwitchParser.get(SwitchParser.java:320)
	at com.telenav.kivakit.commandline.Switch.get(Switch.java:72)
	at com.telenav.kivakit.commandline.parsing.SwitchList.get(SwitchList.java:88)
	at com.telenav.kivakit.commandline.CommandLine.get(CommandLine.java:241)
	at com.telenav.kivakit.application.Application.get(Application.java:436)
	at com.telenav.kivakit.application.Application.startupInformation(Application.java:652)
	at com.telenav.kivakit.application.Application.showStartupInformation(Application.java:611)
	at com.telenav.kivakit.application.Application.run(Application.java:576)
	at com.telenav.pomrefactoring.PomRefactoring.main(PomRefactoring.java:27)

Broken listener chain due to inheritance from mixin and base component

Description
The ResourceTrait class should inherit from Repeater and not RepeaterMixin so that classes extending BaseComponent that use ResourceTrait don't have two repeater implementations at the same time.

Code was added to BaseRepeater to flag components that incorrectly use a RepeaterMixin as well. This turned up several other places in the code where invalid repeater mixins were removed.

Update KivaKit framework diagram

What needs to be done?
The diagram on the home page of state-of-the-art (and elsewhere) needs to include the added frameworks in 1.2

Make kivakit-filesystems-hdfs test configurable

What would you like?

  • Add configuration environment variables similar to S3 filesystem so that the test can be run outside of telenav
  • Remove any hardwired Telenav-specific information (default to telenav hdfs cluster is okay)

Why would you like it?
To allow people outside telenav to run the HDFS filesystem test

Write microservices articles

What needs to be done?
We need new articles for the following new features:

  • AWS Lambda
  • Prometheus metrics
  • Zookeeper settings store
  • Cluster elections

Clean up repositories

What needs to be done?

  1. Remove all history from assets repositories
  2. Remove all large files (>1M) in history beyond 1 month from all other repositories

Test AWS Lambda code

Description
Use internal proxy to test kivakit-microservice AWS Lambda support
ssh ec2d-proxy-01
cd /usr/local/kiva/

Create kivakit-examples repository and start adding examples

What would you like?
A repository kivakit-examples should be created and populated with examples that
demonstrate uses of KivaKit. The examples should be linked into the KivaKit README.md
file.

Why would you like it?
It's not clear what KivaKit can do to the casual browser

kivakit-assets needs versioned documentation

Description
Currently there is only one set of documentation under "docs" in the kivakit-assets project. Instead, there should be docs/[release-version] for each released version. This should be applied to the other *-assets repositories.

docs/0.9.8-alpha/javadoc
docs/0.9.8-alpha/lexakai
docs/0.9.8-alpha/images
docs/0.9.8-alpha/codeflowers

etc.

CCE when passing Message subclass to Broadcaster

$ScanMessage and com.telenav.kivakit.core.messaging.messages.OperationMessage are in unnamed module of loader 'app')
Exception in thread "Kiva-Console-Log"java.lang.ClassCastException: class com.telenav.pomrefactoring.PomTree.ScanMessage cannot be cast to class
    com.telenav.kivakit.core.messaging.messages.OperationMessage (com.telenav.pomrefactoring.PomTree.ScanMessage and
    com.telenav.kivakit.core.messaging.messages.OperationMessage are in unnamed module of loader 'app')

    com.telenav.kivakit.core.messaging.broadcasters.Multicaster.lambda.transmit.5(Multicaster.java:325)
    com.telenav.kivakit.core.thread.locks.ReadWriteLock.read(ReadWriteLock.java:65)
    com.telenav.kivakit.core.messaging.broadcasters.Multicaster.transmit(Multicaster.java:318)
    com.telenav.kivakit.core.messaging.Broadcaster.transmit(Broadcaster.java:186)
    com.telenav.pomrefactoring.PomTree.walk(PomTree.java:63)
    com.telenav.pomrefactoring.PomRefactoring.onRun(PomRefactoring.java:151)

KivaKit build fails due to Hadoop shading

Description

┋ Building hadoop-doubly-shaded-protobuf
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-javadoc-plugin:3.4.0:javadoc (default-cli) on project hadoop-doubly-shaded-protobuf: Execution default-cli of goal org.apache.maven.plugins:maven-javadoc-plugin:3.4.0:javadoc failed: Unable to derive module descriptor for /tmp/maven-repository/org/apache/hadoop/thirdparty/hadoop-shaded-protobuf_3_7/1.1.1/hadoop-shaded-protobuf_3_7-1.1.1.jar: hadoop.shaded.protobuf.3.7: Invalid module name: '3' is not a Java identifier -> [Help 1]

Reproduce Case
Run the release script

Add kivakit-examples

What would you like?
We need simple examples for these areas:

  • kivakit-configuration (settings and lookup)
  • kivakit-serialization (serialize data to a file?)
  • kivakit-resource / kivakit-filesystem (example that shows how all resources can be treated the same)
  • kivakit-web-jersey (fun rest service)
  • kivakit-network (core examples, http, host, port, protocol)
  • kivakit-logs and kivakit-core messaging example (show how to create a listener chain and funnel it to a log or a different listener)

Why would you like it?
To help people

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.