Code Monkey home page Code Monkey logo

gsoc-meta-linkerd's Introduction

Google Summer of Code 2019 Internship with Linkerd

My GSoC work was aimed to contribute to the SMI-Metrics repository i.e to add support for Istio and also work on other Issues. As the SMI-Metrics project was pretty new, to keep up my work and not get struck on one thing, I also contributed to the Linkerd project i.e fixing issues, adding more features, etc.

General Info

Contributions to SMI-Metrics

Intially the SMI-Metrics, had a very hard dependency on prometheus for metrics as it was still a prototype. This can be a challenge for service mesh projects that don’t depend on prometheus for queries or had a drastically different structure of time-series (i.e labels, sum of multiple metrics,etc ). So, I worked on adding a Mesh Interface and de-coupling the prometheus client. This made the repo more extensiable i.e now service meshes can just implement the interface and reply those metrics with or without prometheus.

Blog Posts

The above blog post consists of a demo of SMI-Metrics with Istio support that I worked on.

Design Docs

Code Contributions

Repository: smi-metrics

Total Pull Requests Created: 14

  1. deislabs/smi-metrics#37 - Move Queries struct to a common package.
  2. deislabs/smi-metrics#36 - Single version Variable for both charts and docker images
  3. deislabs/smi-metrics#31 - Release automation through CircleCI
  4. deislabs/smi-metrics#30 - smi metrics istio installation through helm
  5. deislabs/smi-metrics#25 - Istio Support for SMI-Metrics
  6. deislabs/smi-metrics#23 - Mesh Interface and Refactoring
  7. deislabs/smi-metrics#19 - Fix unused dependencies using go mod tidy
  8. deislabs/smi-metrics#13 - Add usage docs
  9. deislabs/smi-metrics#11 - Added CircleCI Config
  10. deislabs/smi-metrics#7 - Reading Queries from Config yaml
  11. deislabs/smi-metrics#5 - Remove NetRC dependency as the repo's are public

Total Issues Opened: 11

  1. deislabs/smi-metrics#28 - Add Tests for Istio pkg
  2. deislabs/smi-metrics#27 - Update Istio docs with configuration options through helm
  3. deislabs/smi-metrics#26 - Template response latency queries.
  4. deislabs/smi-metrics#24 - Move prometheus related code out of linkerd
  5. deislabs/smi-metrics#22 - Service shouldnt 404 on / endpoint
  6. deislabs/smi-metrics#20 - Fix make build
  7. deislabs/smi-metrics#18 - ApiService dosen't run on 1.15
  8. deislabs/smi-metrics#9 - More documentation on the SMI APIService
  9. deislabs/smi-metrics#8 - Negative Values in the latency metrics.
  10. deislabs/smi-metrics#4 - Support Metrics from Istio
  11. deislabs/smi-metrics#3 - Making Queries Configurable

Total Pull Requests Reviewed: 2

  1. deislabs/smi-metrics#35 - Match circle's arcane filters pattern
  2. deislabs/smi-metrics#33 - Update release tooling to trigger off a tag

Contributions to Linkerd

Throughout the GSoC period, I also kept my contributions up to Linkerd solving issues ranging from small bug fixes to small scale features.

Blog Posts

Repository: linkerd2 Total Pull Requests Created: 18

  1. linkerd/linkerd2#3194 - Check for Namespace level config override annotations
  2. linkerd/linkerd2#3193 - Setting SuccessfulJobHistoryLimit to 0 for CronJobs
  3. linkerd/linkerd2#3153 - replace extensions/v1beta1 to apps/v1beta1
  4. linkerd/linkerd2#3152 - Add Node Selectors to select only linux nodes
  5. linkerd/linkerd2#3092 - Added Resource Limits when ha is Configured
  6. linkerd/linkerd2#3038 - Fix inject with path and add tests
  7. linkerd/linkerd2#2988 - linkerd inject from remote URL
  8. linkerd/linkerd2#2984 - add admin port label to proxy-injector and sp-validator
  9. linkerd/linkerd2#2963 - Add sideEffects field to Webhooks
  10. linkerd/linkerd2#2893 - Added Anti Affinity when HA is configured
  11. linkerd/linkerd2#2874 - HA for proxy-injector and sp-validator
  12. linkerd/linkerd2#2853 - Added labels to webhook configurations in charts/
  13. linkerd/linkerd2#2820 - Added controller component labels to webhook configurations
  14. linkerd/linkerd2#2439 - Added Jobs Resource to Linkerd Dashboard along with grafana.
  15. linkerd/linkerd2#2416 - WIP: Wire up stats and dashboards for Jobs
  16. linkerd/linkerd2#2387 - WIP: Wire up stats and dashboards for Jobs
  17. linkerd/linkerd2#2293 - Added ep Alias for endpoints command
  18. linkerd/linkerd2#2292 - Ignoring resources with empty kind field.

Total Pull Requests Reviewed: 3

  1. linkerd/linkerd2#3266 - Fix integration test
  2. linkerd/linkerd2#3039 - Fix linkerd inject url handling
  3. linkerd/linkerd2#3032 - Add release notes for stable-2.4.0

Repository: rfc

Total Pull Requests Created: 1

  1. linkerd/rfc#3 - Obsevarbility through GraphQL

Conclusion

I had a great time working with the Linkerd team and especially Thomas (my mentor). I got the oppurtunity to work on latest cutting edge technologies like Kubernetes, etc.

More information on my Google Summer of Code experience can be found here

gsoc-meta-linkerd's People

Contributors

pothulapati avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

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.