Code Monkey home page Code Monkey logo

tick-charts's Introduction

tick-charts

Deprecation Warning

This repository is no longer maintained. We encourage everyone to use the charts provided in the stable Helm repository.


This is a collection of Helm Charts for the InfluxData TICK stack. This repo contains the following charts:

Deploy the whole stack!

  • Have your kubectl tool configured for the cluster where you would like to deploy the stack.
  • Have helm and tiller installed and configured
    • Download and configure the helm cli
    • Run helm init to install tiller in your cluster
  • Install the charts:
$ cd tick-charts
$ helm install --name data --namespace tick ./influxdb/
$ helm install --name polling --namespace tick ./telegraf-s/
$ helm install --name hosts --namespace tick ./telegraf-ds/
$ helm install --name alerts --namespace tick ./kapacitor/
$ helm install --name dash --namespace tick ./chronograf/
  • Wait for the IP for chronograf to appear:
$ kubectl get svc -w --namespace tick -l app=dash-chronograf
  • Open chronograf in your browser and configure it
    • InfluxDB URL: http://data-influxdb.tick:8086
    • Kapacitor URL: http://alerts-kapacitor.tick:9092

Or, just run ./create.sh and let the shell script do it for you! You can also tear down the installation with ./destroy.sh

Usage

To package any of the charts for deployment:

$ helm package /path/to/chart

This will create a file named {{ .Chart.Name }}-{{ .Chart.Version }}.tgz that is the chart file to be deployed. The default configurations are listed in the values.yaml file in the root of each repo. To deploy the chart with some default values create your custom values.yaml file to change the default configuration or modify the values.yaml file at the root of the chart before packaging it:

$ helm install telegraf-0.1.0.tgz --name {{ .Release.Name }} --namespace {{ .Release.Namespace }} --values /path/to/my_values.yaml

Using InfluxData's Helm repo

All the charts are also available in InfluxData's Helm repository. You can use it as so:

$ helm repo add influx http://influx-charts.storage.googleapis.com
$ helm install influx/telegraf-ds

Contributing

If you are interested in contributing to this effort, we ask that you review and sign the Contributor License Agreement. There is an individual and corporate level agreement. Please review which is right based on your situation.

tick-charts's People

Contributors

amoskyler avatar devonbarrett avatar goller avatar hacktohell avatar huazhihao avatar jackzampolin avatar krisbash avatar mkjpryor-stfc avatar mlieberman85 avatar naseemkullah avatar rawkode avatar robermorales avatar russorat avatar sfitts avatar suda avatar timhallinflux 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  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

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

tick-charts's Issues

Use Okta as oauth provider

Hello,

I would like to use "Okta" as oauth provider, but I couldn't see any option in the chart to use "Okta", I see only Google, heroku and heroku.

I tried to put my Okta configs under oauth, but it didn't worked.
Could you please help me to use "Okta" ?

Chart yields invalid telegraf.conf when using nested config

Hi!

I noticed a behaviour of helm which, in context of telegraf tick charts, yields an invalid telegraf.conf.

For example, when adding cloudwatch as input, with a metrics filter, like this:

    [...]
    cloudwatch:
      region: "us-east-1"
      access_key: "someaccesskey"
      secret_key: "somesecret"
      period: "5m"
      delay: "5m"
      interval: "5m"
      cache_ttl: "10m"
      namespace: "AWS/ELB"
      ratelimit: 10
      metrics:
        names:
        - "Latency"
        - "RequestCount"
        dimensions:
          name: "LoadBalancerName"
          value: "p-example"
    [...]

a call to
helm install --dry-run --debug telegraf-s/ (untared into local folder)
shows this:

  [[inputs.cloudwatch]]
    access_key = "someaccesskey"
    cache_ttl = "10m"
    delay = "5m"
    interval = "5m"
    [[inputs.cloudwatch.metrics]]
      [[inputs.cloudwatch.metrics.dimensions]]
          name = "LoadBalancerName"
          value = "p-example"
      names = [
          "Latency",
          "RequestCount"
      ]
    namespace = "AWS/ELB"
    period = "5m"
    ratelimit = 10
    region = "us-east-1"
    secret_key = "somesecret"

According to https://github.com/influxdata/telegraf/blob/master/docs/CONFIGURATION.md#input-config-tags this format is invalid:

"NOTE: Order matters, the [inputs.cpu.tags] table must be at the end of the plugin definition."

Apparently, helm reorders the values alphanumerically, which is unfortunate, as the template does not take these hierarchical values into consideration when rendering the template.

Feature Request: HostPath support for influxdb chart

Asking for a feature request for hostpath support for influxdb chart. Although it is possible to achieve similar functionality using Local Persistent Volumes, support for hostpath in the charts would be nice. Doesn't seem like a big change either.

Create Top Level Chart

Create a tick chart that includes each member of the stack. Making that configurable will be the challenge.

Easy fix - telegraf:1.9.3-alpine Does not exist on Docker Hub

I am unable to use the Influx Helm Chart from the repository as it is using telegraf:1.9.3-alpine which is not hosted on Docker Hub at the moment.

Failed to pull image "telegraf:1.9.3-alpine": rpc error: code = Unknown desc = Error response from daemon: manifest for telegraf:1.9.3-alpine not found

telegraf-ds Does Not Support InfluxDB V2

In order to support the adoption of InfluxDb 2, it would be nice to see telegraf-ds updated to support V2. Currently, the chart that is available does not support pushing to V2.

Allow setting of service account for telegraf-ds

Related to #77 and #92 (in fact I should have done this at the same time, but...)

This is more targeted than what #77 suggests since different configurations may want different accounts/bindings. However, without the ability to at least set the account in the daemonset, you can't make any progress.

Telegraf to collect StatsD

Hey guys,
I have k8s cluster with Telegraf deployed as DaemonSet.
We want to collect StatsD from our apps cross the cluster.
I have added the following Telegraf configuration to my Telegraf DaemonSet:

[[inputs.statsd]]
service_address = "localhost:8125"
delete_gauges = true
delete_counters = true
delete_sets = true
delete_timings = true
percentiles = [90]
metric_separator = "_"

And there is no StatsD collections.. what i'm missing here?
I should set StatsD collector for each pod individualy?

Thanks ๐Ÿ™

read /var/run/utmp: is a directory

Installing/Deploying this helm chart using docker image:
image: repo: "telegraf" tag: "1.10.4-alpine"
starts the telegraf with the following error:

2019-06-17T21:22:00Z E! [inputs.system]: Error in plugin: read /var/run/utmp: is a directory
Please help...

Unclear how to set metric filtering selectors

In the examples at https://github.com/influxdata/telegraf/blob/master/docs/CONFIGURATION.md#filtering-examples, I can see that tagpass is a table nested under it's input's entry in the array of tables. A valid config would be

[[inputs.disk]]
  [inputs.disk.tagpass]
    fstype = [ "ext4" ]

However, I don't see a way to get this helm chart to generate that TOML. If I try

    config:
      inputs:
        defaultdisk:
          disk:
            tagpass:
                fstype:
                    - ext4

I get

    [[inputs.disk]]
      [[inputs.disk.tagpass]]
        fstype = [
            "ext4"
        ]

Notice the double brackets around inputs.disk.tagpass instead of single brackets.

StatefulSet instead of Deployment

Is there a specific reason why the influxdb chart uses a Deployment instead of a StatefulSet? If I understand correctly, this means that two pods will share the same PV for a short amount of time during pod reschedules (e.g. updates, node drains).

Is InfluxDB able to handle concurrent R/W access to data files from multiple instances? If so, a Deployment probably works fine. If not, this may be a serious possibility for data corruption and a StatefulSet would be the only right choice here.

Allow for passing influx passwords as secrets

I have a large chart that includes some custom containers and influx and telegraf. We let influx create a random password and all the other charts just read the secret to get the password. It would be helpful if telegraf could read this out of the secret rather than me passing it in raw.

Allow wal and data to be split onto different devices.

The installation instructions for influx recommend putting the wal and data directories on different devices (https://docs.influxdata.com/influxdb/v1.7/introduction/installation/#hardware-requirements-for-influxdb). However, looking at this chart that's not currently possible as the configuration settings share the same root directory and there is only the provision for a single PVC. It would be nice if the chart offered an option for doing a more scalable deployment.

Add environment variable support to telegraf charts

It would be useful to inject secrets and other configuration using environment variables into the telegraf-s chart and telegraf-ds. The telegraf daemon already supports rendering environment variables so this should be a pretty easy change the to charts.

Support service accounts for telegraf-s

The Prometheus plug-in requires permissions that the default service account does not usually have. It would be nice to be able to associate a service account with the deployment.

InfluxDB chart error since update

With the new updates, I get an error that says:

Error: render error in "influxdb/templates/service.yaml": template: influxdb/templates/service.yaml:18:16: executing "influxdb/templates/service.yaml" at <.Values.config.admin...>: can't evaluate field enabled in type interface {}

However, this issue did not exist a few days ago.

I was wondering what this issue was? I have tried searching for answers for the error, but there were no answers.

Telegraf with multiple replicas

Hi,
I was wondering if it'd be possible to run multiple replicas of Telegraf to ensure high availability within the Kubernetes cluster.
The change for the chart should be very straightforward, but I'm not sure if there's a reason why it may not be supported.

Thanks

/stats/summary returned HTTP status 401 Unauthorized

Using this config in telegraf-ds

[[inputs.kubernetes]]
  bearer_token = "/var/run/secrets/kubernetes.io/serviceaccount/token"
  insecure_skip_verify = true
  url = "https://$HOSTIP:10250"

I get this error:

Jan 18 15:40:10 hosts-telegraf-ds-wsnbp hosts-telegraf-ds Error E! [inputs.kubernetes]: Error in plugin: https://172.23.47.179:10250/stats/summary returned HTTP status 401 Unauthorized

It seems that I am missing the serviceaccount token for telegraf to query the kubernetes endpoint.

I find it weird that the tick-charts did not create this serviceaccount automatically.

What am I missing? How can I make the inputs.kubernetes work?

Question / Feature Request: Zipkin plugin support

I noticed the documentation does not mention Zipkin as one of the supported plugins. Is this because it's officially experimental or because the helm chart really does not support it? (Briefly) what would one need to do to add support for it?

fail to install chronograf: nightly using helm

I'm trying to install the nightly build of chronograf via Helm using the following command:
helm install --name dash --namespace tick ./chronograf/ --set image.tag=nighty
or
helm install --name dash --namespace tick ./chronograf/ --set image.tag=nightly --set image.name=quay.io/influxdb/chronograf

but I got it in error state (ErrImagePull).

I was manage to install influxdb:nightly via this command:
helm install --name data --namespace tick ./influxdb/ --set image.tag=nightly

Cannot override configuration parameters (example doesn't work)

$ helm version
Client: &version.Version{SemVer:"v2.12.1", GitCommit:"02a47c7249b1fc6d8fd3b94e6b4babf9d818144e", GitTreeState:"clean"}
Server: &version.Version{SemVer:"v2.12.0", GitCommit:"d325d2a9c179b33af1a024cdb5a4472b6288016a", GitTreeState:"clean"}

Running with no parameters:

$ helm install --debug --dry-run    influx/telegraf-ds
...
USER-SUPPLIED VALUES:
{}

COMPUTED VALUES:
config:
  agent:
    collection_jitter: 0s
    debug: false
    flush_interval: 10s
    flush_jitter: 0s
    hostname: $HOSTNAME
    interval: 10s
    logfile: ""
    metric_batch_size: 1000
    metric_buffer_limit: 10000
    omit_hostname: false
    precision: ""
    quiet: false
    round_interval: true
  inputs:
  - kubernetes:
      bearer_token: /var/run/secrets/kubernetes.io/serviceaccount/token
      insecure_skip_verify: true
      url: https://$HOSTIP:10250
  - docker:
      docker_label_exclude:
      - annotation.kubernetes.io/*
      endpoint: unix:///var/run/docker.sock
      perdevice: true
      timeout: 5s
      total: false
  outputs:
  - influxdb:
      database: telegraf
      insecure_skip_verify: false
      password: ""
      retention_policy: ""
      timeout: 5s
      url: http://data-influxdb.tick:8086
      user_agent: telegraf
      username: ""
...
# Source: telegraf-ds/templates/configmap.yaml
apiVersion: v1
kind: ConfigMap
metadata:
  name: whimsical-cardinal-teleg
  labels:
    app: whimsical-cardinal-teleg
    chart: "telegraf-ds-1.9.1"
    release: "whimsical-cardinal"
    heritage: "Tiller"
data:
  telegraf.conf: |+
    
    [agent]
      collection_jitter = "0s"
      debug = false
      flush_interval = "10s"
      flush_jitter = "0s"
      hostname = "$HOSTNAME"
      interval = "10s"
      logfile = ""
      metric_batch_size = 1000
      metric_buffer_limit = 10000
      omit_hostname = false
      precision = ""
      quiet = false
      round_interval = true
    
    [[outputs.influxdb]]
      database = "telegraf"
      insecure_skip_verify = false
      password = ""
      retention_policy = ""
      timeout = "5s"
      url = "http://data-influxdb.tick:8086"
      user_agent = "telegraf"
      username = ""
    [[inputs.kubernetes]]
      bearer_token = "/var/run/secrets/kubernetes.io/serviceaccount/token"
      insecure_skip_verify = true
      url = "https://$HOSTIP:10250"
    [[inputs.docker]]
      docker_label_exclude = [
        "annotation.kubernetes.io/*"
      ]
      endpoint = "unix:///var/run/docker.sock"
      perdevice = true
      timeout = "5s"
      total = false

However, if I want to set the influxdb as in the example:

helm install --debug --dry-run  --set config.outputs.influxdb.url=http://foo.bar:8086   influx/telegraf-ds
...
2019/01/16 10:44:41 Warning: Merging destination map for chart 'telegraf-ds'. The destination item 'outputs' is a table and ignoring the source 'outputs' as it has a non-table value of: [map[influxdb:map[user_agent:telegraf username: database:telegraf insecure_skip_verify:false password: retention_policy: timeout:5s url:http://data-influxdb.tick:8086]]]
...
USER-SUPPLIED VALUES:
config:
  outputs:
    influxdb:
      url: http://foo.bar:8086

COMPUTED VALUES:
config:
  agent:
    collection_jitter: 0s
    debug: false
    flush_interval: 10s
    flush_jitter: 0s
    hostname: $HOSTNAME
    interval: 10s
    logfile: ""
    metric_batch_size: 1000
    metric_buffer_limit: 10000
    omit_hostname: false
    precision: ""
    quiet: false
    round_interval: true
  inputs:
  - kubernetes:
      bearer_token: /var/run/secrets/kubernetes.io/serviceaccount/token
      insecure_skip_verify: true
      url: https://$HOSTIP:10250
  - docker:
      docker_label_exclude:
      - annotation.kubernetes.io/*
      endpoint: unix:///var/run/docker.sock
      perdevice: true
      timeout: 5s
      total: false
  outputs:
    influxdb:
      url: http://foo.bar:8086
...
# Source: telegraf-ds/templates/configmap.yaml
apiVersion: v1
kind: ConfigMap
metadata:
  name: dandy-ladybug-telegraf-d
  labels:
    app: dandy-ladybug-telegraf-d
    chart: "telegraf-ds-1.9.1"
    release: "dandy-ladybug"
    heritage: "Tiller"
data:
  telegraf.conf: |+
    
    [agent]
      collection_jitter = "0s"
      debug = false
      flush_interval = "10s"
      flush_jitter = "0s"
      hostname = "$HOSTNAME"
      interval = "10s"
      logfile = ""
      metric_batch_size = 1000
      metric_buffer_limit = 10000
      omit_hostname = false
      precision = ""
      quiet = false
      round_interval = true
    
    [[outputs.url]]
    [[inputs.kubernetes]]
      bearer_token = "/var/run/secrets/kubernetes.io/serviceaccount/token"
      insecure_skip_verify = true
      url = "https://$HOSTIP:10250"
    [[inputs.docker]]
      docker_label_exclude = [
        "annotation.kubernetes.io/*"
      ]
      endpoint = "unix:///var/run/docker.sock"
      perdevice = true
      timeout = "5s"
      total = false

I think it's a helm issue, but the things is that the example doesn't work and it's key to get that working

Chart versions in repository need updating

It isn't clear what the update schedule for publishing the charts to the Influx provide chart repo is, but currently the versions there lag the versions here by at least 17 days. It would be nice if the repo was updated so we can pick up the current influx and telegraf charts.

telegraf-s and telegraf-ds should use the same configmap style

the telegraf-s chart is more flexible and supports multiple outputs and any new plugins, while the telegraf-ds chart is very rigid and requires you to make changes to it (not just the values.yaml file) in order to support new plugins or additional outputs.

https://github.com/influxdata/tick-charts/blob/master/telegraf-s/templates/configmap.yaml
vs
https://github.com/influxdata/tick-charts/blob/master/telegraf-ds/templates/configmap.yaml

InfluxDB chart failed to install due to missing Admin section

The 1.6.1 InfluxDB chart fails to install as the admin section was removed from the default values. Attempting to install give the following:

$> helm install --name data --namespace tick influx/influxdb
Error: render error in "influxdb/templates/service.yaml": template: influxdb/templates/service.yaml:18:16: executing "influxdb/templates/service.yaml" at <.Values.config.admin...>: can't evaluate field enabled in type interface {}

Resolution

Adding the following to my values allowed the chart to install:

config:
   admin:
      enabled: false
      https_enabled: false

[stable/influxdb] Liveness probe fails while in WAL recovery

Is this a BUG REPORT or FEATURE REQUEST? (choose one): BUG REPORT

Version of Helm and Kubernetes: 1.10

Which chart: stable/influxdb

What happened: When a WAL recovery lasts too much the liveness probe fails, causing a CrashLoopbackOff error.

What you expected to happen: The liveness probe shouldn't fail while the db is recovering (only readiness probe). Otherwise the DB will never be able to recover.

How to reproduce it (as minimally and precisely as possible):

Install stable/influxdb
Feed the DB with a large amount of data, and terminate the DB pod abruptly while feeding the DB

Anything else we need to know: duplicate of helm/charts#10405

Kapacitor Failed to list resource

kapacitor/templates/config.yaml has multiple [[kubernetes]] blocks configured set to use the in_cluster mode.
This generates errors like seen below in the kapacitord log:

โ”‚ alerts-kapacitor-85bbdf59f4-sdvqd:kapacitor 2019/06/14 17:59:24 Using configuration at: /etc/kapacitor/kapacitor.conf โ”‚
โ”‚ alerts-kapacitor-85bbdf59f4-sdvqd:kapacitor ts=2019-06-14T17:59:24.425Z lvl=info msg="kapacitor starting" service=run version=1.5.2 branch=HEAD commit=3086452d00830e01d932838d8c6d1df818648ad3 โ”‚
โ”‚ alerts-kapacitor-85bbdf59f4-sdvqd:kapacitor ts=2019-06-14T17:59:24.425Z lvl=info msg="go version" service=run version=go1.11.2 โ”‚
โ”‚ alerts-kapacitor-85bbdf59f4-sdvqd:kapacitor ts=2019-06-14T17:59:24.425Z lvl=info msg="listing Kapacitor hostname" source=srv hostname=alerts-kapacitor-85bbdf59f4-sdvqd โ”‚
โ”‚ alerts-kapacitor-85bbdf59f4-sdvqd:kapacitor ts=2019-06-14T17:59:24.425Z lvl=info msg="listing ClusterID and ServerID" source=srv cluster_id=a3bdf363-954a-4939-9ede-f08a597db380 server_id=d129b614-0d5b-43e5-97b7-53ad2ab63e5b โ”‚
โ”‚ alerts-kapacitor-85bbdf59f4-sdvqd:kapacitor ts=2019-06-14T17:59:24.426Z lvl=info msg="opened task master" service=kapacitor task_master=main โ”‚
โ”‚ alerts-kapacitor-85bbdf59f4-sdvqd:kapacitor ts=2019-06-14T17:59:24.515Z lvl=info msg="Starting target manager..." service=scraper โ”‚
โ”‚ alerts-kapacitor-85bbdf59f4-sdvqd:kapacitor ts=2019-06-14T17:59:24.516Z lvl=info msg="starting HTTP service" service=http โ”‚
โ”‚ alerts-kapacitor-85bbdf59f4-sdvqd:kapacitor ts=2019-06-14T17:59:24.516Z lvl=info msg=authentication service=http enabled=false โ”‚
โ”‚ alerts-kapacitor-85bbdf59f4-sdvqd:kapacitor ts=2019-06-14T17:59:24.516Z lvl=info msg="Using pod service account via in-cluster config" service=scraper โ”‚
โ”‚ alerts-kapacitor-85bbdf59f4-sdvqd:kapacitor ts=2019-06-14T17:59:24.516Z lvl=info msg="listening on" service=http addr=[::]:9092 protocol=http โ”‚
โ”‚ alerts-kapacitor-85bbdf59f4-sdvqd:kapacitor ts=2019-06-14T17:59:24.516Z lvl=info msg="listening for signals" service=run โ”‚
โ”‚ alerts-kapacitor-85bbdf59f4-sdvqd:kapacitor time="2019-06-14T17:59:24Z" level=error msg="github.com/influxdata/kapacitor/vendor/k8s.io/client-go/1.5/tools/cache/reflector.go:109: Failed to list *v1.Pod: pods is forbidden: Us โ”‚
โ”‚ er "system:serviceaccount:tick:default" cannot list resource "pods" in API group "" at the cluster scope" component="kube_client_runtime" source="kubernetes.go:73" โ”‚
โ”‚ alerts-kapacitor-85bbdf59f4-sdvqd:kapacitor time="2019-06-14T17:59:25Z" level=error msg="github.com/influxdata/kapacitor/vendor/k8s.io/client-go/1.5/tools/cache/reflector.go:109: Failed to list *v1.Pod: pods is forbidden: Us โ”‚
โ”‚ er "system:serviceaccount:tick:default" cannot list resource "pods" in API group "" at the cluster scope" component="kube_client_runtime" source="kubernetes.go:73" โ”‚

Telegraph-DS, Chronograf K8S dashboards not working

I must be doing something not quite right. I deployed Telegraph-DS to my cluster, and in my host list in Chronograf, I can see my cluster worker nodes (status and cpu/load is not displaying). I can click on a node and see the metrics associated with it just fine.

If I go to the dashboard in Chronograf and try to view any of the K8S dashboards, I'm greeted with:
To enable this graph, you will need to configure the Telegraf Kubernetes Input plugin.

I thought Telegraph-DS enables the Kubernetes Input Plugin by default.

My config map for telegraph-ds has the input:
[[inputs.kubernetes]]
bearer_token = "/var/run/secrets/kubernetes.io/serviceaccount/token"
insecure_skip_verify = true
url = "https://$HOSTIP:10250"

And from the pod console, $HOSTIP resolves properly an an environment variable.

Any thoughts on what I'm missing? Thanks.

Using Telegraf to export InfluxDB metrics to Prometheus

Noticed that configMap.yaml and deployment.yaml are only created if configs.outputs.influxdb.urls has a value. This condition prevents using the helm chart to monitor an InfluxDB pod only (influxdb only as an input) and expose metrics to prometheus (prometheus as the only output).

I've worked around this by removing said condition in both these yaml files. What is the design intent here?

Init Chronograf: no dashboard on the list

after running the Chronograf's 'helm install'.
The second step of the wizard don't show any dashboard.
When I did it first time it had shown but after 'helm delete {chart-name} --purge'
It doesn't shown anymore (I have 4k display).
print screen

Don't delete old versions from repository

When you bump the version of the charts, the chart is removed from the repository. If version pinning the chart, this leads to very confusing results after updates.

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.