Code Monkey home page Code Monkey logo

Comments (10)

cf-gitbot avatar cf-gitbot commented on July 2, 2024

We have created an issue in Pivotal Tracker to manage this. You can view the current status of your issue at: http://www.pivotaltracker.com/story/show/65188064

from cli.

soudmaijer avatar soudmaijer commented on July 2, 2024

Hi, this is due to the fact that the go client used loggregator. This should be configured in CF. And the endpoint should also be listed in: api.cf.domain.com/v2/info

from cli.

james-masson avatar james-masson commented on July 2, 2024

We've added in loggregator and loggregator_trafficcontroller - it seems to be working, and we can manually retrieve logs from it.

However, NYET still doesn't like it.

App is started...

It just needed to be restarted!
My application metadata: {"instance_id":"a0b0ae8429814c50bd48aea9d719df9e","instance_index":0,"host":"0.0.0.0","port":61009,"started_at":"2014-02-10 11:23:36 +0000","started_at_timestamp":1392031416,"start":"2014-02-10 11:23:36 +0000","state_timestamp":1392031416,"limits":{"mem":512,"disk":1024,"fds":16384},"application_version":"14985a58-cc00-466a-a8d9-2a5774199f73","application_name":"loggregator-java","application_uris":["loggregator-java.cf.c3ci.cpgpaas.net"],"version":"14985a58-cc00-466a-a8d9-2a5774199f73","name":"loggregator-java","uris":["loggregator-java.cf.c3ci.cpgpaas.net"],"users":null}
My port: 61009
My custom env variable: 404805fe-d7fa-44f8-b5df-d86c929faa18_1392031371

But NYET says

Loggregator
--- find: #<CFoundry::V2::User '2b44ee8d-e05b-4541-8a88-54f5ad148e31'> (regular user: #<CFoundry::V2::User '2b44ee8d-e05b-4541-8a88-54f5ad148e31'>)
DEPRECATION WARNING: Please use CFoundry::Client.get instead of CFoundry::Client.new
--- create: #<CFoundry::V2::Organization '1f3341a7-c652-4660-87e4-5c28b0bb68b6'> (*admin* user: #<CFoundry::V2::User '2b44ee8d-e05b-4541-8a88-54f5ad148e31'>)
--- create: #<CFoundry::V2::Space '038aef11-62a4-485c-be22-7fa81c661efe'> (regular user: #<CFoundry::V2::User '2b44ee8d-e05b-4541-8a88-54f5ad148e31'>)
--- create: #<CFoundry::V2::App '82731604-e2a3-4d30-a4a1-6ffa3b542427'> (regular user: #<CFoundry::V2::User '2b44ee8d-e05b-4541-8a88-54f5ad148e31'>)
--- create: #<CFoundry::V2::Route '80ce542a-6ab0-4397-8957-0979d6157baf'> (regular user: #<CFoundry::V2::User '2b44ee8d-e05b-4541-8a88-54f5ad148e31'>)
starting deploy_app (2014-02-10 11:22:51 +0000)
starting start_app_and_wait_until_up (2014-02-10 11:22:51 +0000)
starting wait_until_app_started (2014-02-10 11:23:38 +0000)
--- Started monitoring loggregator_works of application.
starting check_loggregator_works (2014-02-10 11:23:44 +0000)
Trying to hit the url: http://loggregator-java.cf.c3ci.cpgpaas.net
Trying to hit the url: http://loggregator-java.cf.c3ci.cpgpaas.net
*** Log expectation ('[App/0]') failed; retrying 5 more times
Trying to hit the url: http://loggregator-java.cf.c3ci.cpgpaas.net
*** Log expectation ('[App/0]') failed; retrying 4 more times
Trying to hit the url: http://loggregator-java.cf.c3ci.cpgpaas.net
*** Log expectation ('[App/0]') failed; retrying 3 more times
Trying to hit the url: http://loggregator-java.cf.c3ci.cpgpaas.net
*** Log expectation ('[App/0]') failed; retrying 2 more times
Trying to hit the url: http://loggregator-java.cf.c3ci.cpgpaas.net
*** Log expectation ('[App/0]') failed; retrying 1 more times
Trying to hit the url: http://loggregator-java.cf.c3ci.cpgpaas.net
--- Metric loggregator.health = 0  ({})
--- delete: #<CFoundry::V2::Organization '1f3341a7-c652-4660-87e4-5c28b0bb68b6'> (*admin* user: #<CFoundry::V2::User '2b44ee8d-e05b-4541-8a88-54f5ad148e31'>)
  gets log messages from an app (FAILED - 1)

DogapiMonitoring
  #record_action
    given a deployment without a 'cf-' prefix
--- Started monitoring action of application.
--- Finished monitoring action of application. Took 0.0 seconds.
--- Dogapi record 'nyet.action.response_time_ms' with 0.0040531158447265625  ["role:core", "deployment:cf-deployment_name", "app_type:app_type"]
      prepends 'cf-' to the deployment name
    given a deployment with a 'cf-' prefix
--- Started monitoring action of application.
--- Finished monitoring action of application. Took 0.0 seconds.
--- Dogapi record 'nyet.action.response_time_ms' with 0.004291534423828125  ["role:core", "deployment:cf-deployment_name", "app_type:app_type"]
      does not prepend 'cf-' to the deployment name

Monitoring
  #record_action
    when block raises an error
      propagates raised error
    when block does not raise an error
      returns time

Failures:

  1) Loggregator gets log messages from an app
     Failure/Error: runner.should say "[App/0]"
       expected '[App/0]' to be printed, but it wasn't. full output:
       Connected, tailing logs for app loggregator-java in org nyet-org-e7e3526c-31a5-4719-b275-069c82bd82c8 / space nyet-space-17bc6c22-3505-4ac7-ad5b-277f7e8d75b7 as admin...

       2014-02-10T11:22:52.07+0000 [DEA]     OUT Got staging request for app with id 82731604-e2a3-4d30-a4a1-6ffa3b542427
       2014-02-10T11:22:52.96+0000 [API]     OUT Updated app with guid 82731604-e2a3-4d30-a4a1-6ffa3b542427 ({"state"=>"STARTED"})
       2014-02-10T11:22:53.11+0000 [STG]     OUT -----> Downloaded app package (8.0K)
       2014-02-10T11:23:13.71+0000 [STG]     OUT -----> Downloading OpenJDK 1.7.0_51 from http://download.pivotal.io.s3.amazonaws.com/openjdk/lucid/x86_64/openjdk-1.7.0_51.tar.gz (9.8s)
       2014-02-10T11:23:13.71+0000 [STG]     OUT        Expanding JRE to .java (1.6s)
       2014-02-10T11:23:13.71+0000 [STG]     OUT -----> Downloading Tomcat 7.0.50 from http://download.pivotal.io.s3.amazonaws.com/tomcat/tomcat-7.0.50.tar.gz (4.3s)
       2014-02-10T11:23:13.71+0000 [STG]     OUT        Expanding Tomcat to .tomcat (0.2s)
       2014-02-10T11:23:13.71+0000 [STG]     OUT -----> Downloading Buildpack Tomcat Support 1.1.1 from http://download.pivotal.io.s3.amazonaws.com/tomcat-buildpack-support/tomcat-buildpack-support-1.1.1.jar (0.2s)
       2014-02-10T11:23:23.22+0000 [STG]     OUT -----> Uploading droplet (40M)
       2014-02-10T11:23:36.31+0000 [DEA]     OUT Registering app instance (index 0) with guid 82731604-e2a3-4d30-a4a1-6ffa3b542427
       2014-02-10T11:23:45.17+0000 [RTR]     OUT loggregator-java.cf.c3ci.cpgpaas.net - [10/02/2014:11:23:45 +0000] "GET / HTTP/1.1" 200 724 "-" "Ruby" 172.16.127.201:55393 response_time:0.051482939 app_id:82731604-e2a3-4d30-a4a1-6ffa3b542427
       2014-02-10T11:23:50.20+0000 [RTR]     OUT loggregator-java.cf.c3ci.cpgpaas.net - [10/02/2014:11:23:50 +0000] "GET / HTTP/1.1" 200 724 "-" "Ruby" 172.16.127.201:55394 response_time:0.004382184 app_id:82731604-e2a3-4d30-a4a1-6ffa3b542427
            OUT loggregator-java.cf.c3ci.cpgpaas.net - [10/02/2014:11:23:45 +0000] "GET / HTTP/1.1" 200 724 "-" "Ruby" 172.16.127.201:55393 response_time:0.051482939 app_id:82731604-e2a3-4d30-a4a1-6ffa3b542427
       2014-02-10T11:23:50.20+0000 [RTR]     OUT loggregator-java.cf.c3ci.cpgpaas.net - [10/02/2014:11:23:50 +0000] "GET / HTTP/1.1" 200 724 "-" "Ruby" 172.16.127.201:55394 response_time:0.004382184 app_id:82731604-e2a3-4d30-a4a1-6ffa3b542427
       2014-02-10T11:24:05.24+0000 [RTR]     OUT loggregator-java.cf.c3ci.cpgpaas.net - [10/02/2014:11:24:05 +0000] "GET / HTTP/1.1" 200 724 "-" "Ruby" 172.16.127.201:55396 response_time:0.003964383 app_id:82731604-e2a3-4d30-a4a1-6ffa3b542427
            OUT loggregator-java.cf.c3ci.cpgpaas.net - [10/02/2014:11:23:45 +0000] "GET / HTTP/1.1" 200 724 "-" "Ruby" 172.16.127.201:55393 response_time:0.051482939 app_id:82731604-e2a3-4d30-a4a1-6ffa3b542427
       2014-02-10T11:23:50.20+0000 [RTR]     OUT loggregator-java.cf.c3ci.cpgpaas.net - [10/02/2014:11:23:50 +0000] "GET / HTTP/1.1" 200 724 "-" "Ruby" 172.16.127.201:55394 response_time:0.004382184 app_id:82731604-e2a3-4d30-a4a1-6ffa3b542427
       2014-02-10T11:24:05.24+0000 [RTR]     OUT loggregator-java.cf.c3ci.cpgpaas.net - [10/02/2014:11:24:05 +0000] "GET / HTTP/1.1" 200 724 "-" "Ruby" 172.16.127.201:55396 response_time:0.003964383 app_id:82731604-e2a3-4d30-a4a1-6ffa3b542427
       2014-02-10T11:24:20.29+0000 [RTR]     OUT loggregator-java.cf.c3ci.cpgpaas.net - [10/02/2014:11:24:20 +0000] "GET / HTTP/1.1" 200 724 "-" "Ruby" 172.16.127.201:55404 response_time:0.003917594 app_id:82731604-e2a3-4d30-a4a1-6ffa3b542427
       2014-02-10T11:24:20.37+0000 [RTR]     OUT loggregator-java.cf.c3ci.cpgpaas.net - [10/02/2014:11:24:20 +0000] "GET / HTTP/1.1" 200 724 "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_8_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/30.0.1599.66 Safari/537.36" 172.16.127.201:55402 response_time:0.003141198 app_id:82731604-e2a3-4d30-a4a1-6ffa3b542427
       2014-02-10T11:24:20.50+0000 [RTR]     OUT loggregator-java.cf.c3ci.cpgpaas.net - [10/02/2014:11:24:20 +0000] "GET /favicon.ico HTTP/1.1" 200 724 "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_8_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/30.0.1599.66 Safari/537.36" 172.16.127.201:55402 response_time:0.002707856 app_id:82731604-e2a3-4d30-a4a1-6ffa3b542427
            OUT loggregator-java.cf.c3ci.cpgpaas.net - [10/02/2014:11:23:45 +0000] "GET / HTTP/1.1" 200 724 "-" "Ruby" 172.16.127.201:55393 response_time:0.051482939 app_id:82731604-e2a3-4d30-a4a1-6ffa3b542427
       2014-02-10T11:23:50.20+0000 [RTR]     OUT loggregator-java.cf.c3ci.cpgpaas.net - [10/02/2014:11:23:50 +0000] "GET / HTTP/1.1" 200 724 "-" "Ruby" 172.16.127.201:55394 response_time:0.004382184 app_id:82731604-e2a3-4d30-a4a1-6ffa3b542427
       2014-02-10T11:24:05.24+0000 [RTR]     OUT loggregator-java.cf.c3ci.cpgpaas.net - [10/02/2014:11:24:05 +0000] "GET / HTTP/1.1" 200 724 "-" "Ruby" 172.16.127.201:55396 response_time:0.003964383 app_id:82731604-e2a3-4d30-a4a1-6ffa3b542427
       2014-02-10T11:24:20.29+0000 [RTR]     OUT loggregator-java.cf.c3ci.cpgpaas.net - [10/02/2014:11:24:20 +0000] "GET / HTTP/1.1" 200 724 "-" "Ruby" 172.16.127.201:55404 response_time:0.003917594 app_id:82731604-e2a3-4d30-a4a1-6ffa3b542427
       2014-02-10T11:24:20.37+0000 [RTR]     OUT loggregator-java.cf.c3ci.cpgpaas.net - [10/02/2014:11:24:20 +0000] "GET / HTTP/1.1" 200 724 "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_8_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/30.0.1599.66 Safari/537.36" 172.16.127.201:55402 response_time:0.003141198 app_id:82731604-e2a3-4d30-a4a1-6ffa3b542427
       2014-02-10T11:24:20.50+0000 [RTR]     OUT loggregator-java.cf.c3ci.cpgpaas.net - [10/02/2014:11:24:20 +0000] "GET /favicon.ico HTTP/1.1" 200 724 "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_8_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/30.0.1599.66 Safari/537.36" 172.16.127.201:55402 response_time:0.002707856 app_id:82731604-e2a3-4d30-a4a1-6ffa3b542427
       2014-02-10T11:24:35.57+0000 [RTR]     OUT loggregator-java.cf.c3ci.cpgpaas.net - [10/02/2014:11:24:35 +0000] "GET / HTTP/1.1" 200 724 "-" "Ruby" 172.16.127.201:55405 response_time:0.004097363 app_id:82731604-e2a3-4d30-a4a1-6ffa3b542427
            OUT loggregator-java.cf.c3ci.cpgpaas.net - [10/02/2014:11:23:45 +0000] "GET / HTTP/1.1" 200 724 "-" "Ruby" 172.16.127.201:55393 response_time:0.051482939 app_id:82731604-e2a3-4d30-a4a1-6ffa3b542427
       2014-02-10T11:23:50.20+0000 [RTR]     OUT loggregator-java.cf.c3ci.cpgpaas.net - [10/02/2014:11:23:50 +0000] "GET / HTTP/1.1" 200 724 "-" "Ruby" 172.16.127.201:55394 response_time:0.004382184 app_id:82731604-e2a3-4d30-a4a1-6ffa3b542427
       2014-02-10T11:24:05.24+0000 [RTR]     OUT loggregator-java.cf.c3ci.cpgpaas.net - [10/02/2014:11:24:05 +0000] "GET / HTTP/1.1" 200 724 "-" "Ruby" 172.16.127.201:55396 response_time:0.003964383 app_id:82731604-e2a3-4d30-a4a1-6ffa3b542427
       2014-02-10T11:24:20.29+0000 [RTR]     OUT loggregator-java.cf.c3ci.cpgpaas.net - [10/02/2014:11:24:20 +0000] "GET / HTTP/1.1" 200 724 "-" "Ruby" 172.16.127.201:55404 response_time:0.003917594 app_id:82731604-e2a3-4d30-a4a1-6ffa3b542427
       2014-02-10T11:24:20.37+0000 [RTR]     OUT loggregator-java.cf.c3ci.cpgpaas.net - [10/02/2014:11:24:20 +0000] "GET / HTTP/1.1" 200 724 "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_8_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/30.0.1599.66 Safari/537.36" 172.16.127.201:55402 response_time:0.003141198 app_id:82731604-e2a3-4d30-a4a1-6ffa3b542427
       2014-02-10T11:24:20.50+0000 [RTR]     OUT loggregator-java.cf.c3ci.cpgpaas.net - [10/02/2014:11:24:20 +0000] "GET /favicon.ico HTTP/1.1" 200 724 "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_8_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/30.0.1599.66 Safari/537.36" 172.16.127.201:55402 response_time:0.002707856 app_id:82731604-e2a3-4d30-a4a1-6ffa3b542427
       2014-02-10T11:24:35.57+0000 [RTR]     OUT loggregator-java.cf.c3ci.cpgpaas.net - [10/02/2014:11:24:35 +0000] "GET / HTTP/1.1" 200 724 "-" "Ruby" 172.16.127.201:55405 response_time:0.004097363 app_id:82731604-e2a3-4d30-a4a1-6ffa3b542427
       2014-02-10T11:24:50.71+0000 [RTR]     OUT loggregator-java.cf.c3ci.cpgpaas.net - [10/02/2014:11:24:50 +0000] "GET / HTTP/1.1" 200 724 "-" "Ruby" 172.16.127.201:55407 response_time:0.003897717 app_id:82731604-e2a3-4d30-a4a1-6ffa3b542427
            OUT loggregator-java.cf.c3ci.cpgpaas.net - [10/02/2014:11:23:45 +0000] "GET / HTTP/1.1" 200 724 "-" "Ruby" 172.16.127.201:55393 response_time:0.051482939 app_id:82731604-e2a3-4d30-a4a1-6ffa3b542427
       2014-02-10T11:23:50.20+0000 [RTR]     OUT loggregator-java.cf.c3ci.cpgpaas.net - [10/02/2014:11:23:50 +0000] "GET / HTTP/1.1" 200 724 "-" "Ruby" 172.16.127.201:55394 response_time:0.004382184 app_id:82731604-e2a3-4d30-a4a1-6ffa3b542427
       2014-02-10T11:24:05.24+0000 [RTR]     OUT loggregator-java.cf.c3ci.cpgpaas.net - [10/02/2014:11:24:05 +0000] "GET / HTTP/1.1" 200 724 "-" "Ruby" 172.16.127.201:55396 response_time:0.003964383 app_id:82731604-e2a3-4d30-a4a1-6ffa3b542427
       2014-02-10T11:24:20.29+0000 [RTR]     OUT loggregator-java.cf.c3ci.cpgpaas.net - [10/02/2014:11:24:20 +0000] "GET / HTTP/1.1" 200 724 "-" "Ruby" 172.16.127.201:55404 response_time:0.003917594 app_id:82731604-e2a3-4d30-a4a1-6ffa3b542427
       2014-02-10T11:24:20.37+0000 [RTR]     OUT loggregator-java.cf.c3ci.cpgpaas.net - [10/02/2014:11:24:20 +0000] "GET / HTTP/1.1" 200 724 "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_8_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/30.0.1599.66 Safari/537.36" 172.16.127.201:55402 response_time:0.003141198 app_id:82731604-e2a3-4d30-a4a1-6ffa3b542427
       2014-02-10T11:24:20.50+0000 [RTR]     OUT loggregator-java.cf.c3ci.cpgpaas.net - [10/02/2014:11:24:20 +0000] "GET /favicon.ico HTTP/1.1" 200 724 "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_8_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/30.0.1599.66 Safari/537.36" 172.16.127.201:55402 response_time:0.002707856 app_id:82731604-e2a3-4d30-a4a1-6ffa3b542427
       2014-02-10T11:24:35.57+0000 [RTR]     OUT loggregator-java.cf.c3ci.cpgpaas.net - [10/02/2014:11:24:35 +0000] "GET / HTTP/1.1" 200 724 "-" "Ruby" 172.16.127.201:55405 response_time:0.004097363 app_id:82731604-e2a3-4d30-a4a1-6ffa3b542427
       2014-02-10T11:24:50.71+0000 [RTR]     OUT loggregator-java.cf.c3ci.cpgpaas.net - [10/02/2014:11:24:50 +0000] "GET / HTTP/1.1" 200 724 "-" "Ruby" 172.16.127.201:55407 response_time:0.003897717 app_id:82731604-e2a3-4d30-a4a1-6ffa3b542427
       2014-02-10T11:25:06.19+0000 [RTR]     OUT loggregator-java.cf.c3ci.cpgpaas.net - [10/02/2014:11:25:06 +0000] "GET / HTTP/1.1" 200 724 "-" "Ruby" 172.16.127.201:55409 response_time:0.004242648 app_id:82731604-e2a3-4d30-a4a1-6ffa3b542427
     # ./spec/loggregator_spec.rb:83:in `block (2 levels) in check_loggregator_works'
     # ./spec/loggregator_spec.rb:81:in `block in check_loggregator_works'
     # ./spec/loggregator_spec.rb:56:in `new'
     # ./spec/loggregator_spec.rb:56:in `check_loggregator_works'
     # ./spec/loggregator_spec.rb:39:in `block (3 levels) in <top (required)>'
     # ./spec/support/monitoring.rb:5:in `call'
     # ./spec/support/monitoring.rb:5:in `record_action'
     # ./spec/loggregator_spec.rb:37:in `block (2 levels) in <top (required)>'
     # ./spec/support/user_with_org.rb:43:in `block (2 levels) in with_time_limit'
     # ./spec/support/user_with_org.rb:42:in `block in with_time_limit'

Finished in 3 minutes 43 seconds
6 examples, 1 failure

CF /v2/api contents

{"name":"vcap","build":"2222","support":"http://support.cf.c3ci.cpgpaas.net","version":2,"description":"Cloud Foundry v2 sponsored by Pivotal","authorization_endpoint":"http://uaa.cf.c3ci.cpgpaas.net","api_version":"2.0.0","logging_endpoint":"ws://loggregator.cf.c3ci.cpgpaas.net:80"}

from cli.

scottruitt avatar scottruitt commented on July 2, 2024

Thanks, @james-masson. We'll take a deeper look in the morning. fwiw, there are significant logging improvements coming in cf-157. Should be out any day now.

from cli.

tjarratt avatar tjarratt commented on July 2, 2024

It seems to me that the test is failing because it's expecting the string "[App/0]" to be present. Is this an actual log message that the application is generating, or some part of the cf logs output?

I just took a look at the output from the ruby cli and noticed that the way we print log output has changed quite a bit.

from cli.

sclevine avatar sclevine commented on July 2, 2024

@james-masson Can you try the latest gcf from master? We think this may have been fixed in c91e6bc.

from cli.

simonjohansson avatar simonjohansson commented on July 2, 2024

Running trunk cli works for me.

from cli.

james-masson avatar james-masson commented on July 2, 2024

Yes, confirmed that master version of GCF fixes this.

from cli.

scottruitt avatar scottruitt commented on July 2, 2024

Thanks for your help, @james-masson. Apologies for the difficulties too.

from cli.

simonjohansson avatar simonjohansson commented on July 2, 2024

I updated my CF to 158 yesterday and now I can consume logs with go cli 6.0.0

from cli.

Related Issues (20)

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.