profile
viewpoint
Pablo Ruiz García pruiz Madrid (Spain)

pruiz/EPPlus 25

EPPlus fork fixing mono problems.

pruiz/kannel 24

kannel SMS/WAP Gateway

pruiz/AberrantSMPP 21

An SMPP client library for Mono/.Net (Based originally on RoamingSMPP, which is not maintained anymore)

evicertia/HermaFx 7

Opinionated .Net Framework extensions/additions as used by evicertia. ;)

pruiz/BasicAuthDotNet 4

A simple HTTP Basic authentication module (IHttpModule) for ASP.NET/Mono.

pruiz/FreeSwitchSharp 4

FreeSwitch's ESL & Managed libraries for .Net

pruiz/igb 2

Intel IGB Linux Driver custom changes & workarounds.

evicertia/mono-docker 1

Mono Docker images

pruiz/AsteriskDotNet 1

My own asterisk-dotnet.sf.net git clone..

pruiz/cdr_yada 1

Fork of cdr_yada: A call detail recording (CDR) module for asterisk and is used to store records to any database yada supports (currently MySQL, Oracle, PostgreSQL, SQLite3). If the database is not available, it can queue records to both memory and disc for later playback without worry of losing records.

fork Chainimit/WkHtmlToXSharp

C# wrapper wrapper (using P/Invoke) for the excelent Html to PDF conversion library wkhtmltopdf library.

fork in 19 hours

PR opened square/sharkey

Bump gopkg.in/yaml.v2 from 2.3.0 to 2.4.0

Bumps gopkg.in/yaml.v2 from 2.3.0 to 2.4.0. <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/go-yaml/yaml/commit/7649d4548cb53a614db133b2a8ac1f31859dda8c"><code>7649d45</code></a> Revert v2 line length change as discussed in <a href="https://github-redirect.dependabot.com/go-yaml/yaml/issues/670">#670</a></li> <li><a href="https://github.com/go-yaml/yaml/commit/b893565b90ca5ebaabd27e535c0e56f97856e5ff"><code>b893565</code></a> Add go1.14 into travis config (<a href="https://github-redirect.dependabot.com/go-yaml/yaml/issues/585">#585</a>)</li> <li><a href="https://github.com/go-yaml/yaml/commit/bf81f7e13f04d859302d6b0d5488eb242ab1161c"><code>bf81f7e</code></a> Fix Marshal documentation on omitempty and IsZero (<a href="https://github-redirect.dependabot.com/go-yaml/yaml/issues/608">#608</a>)</li> <li>See full diff in <a href="https://github.com/go-yaml/yaml/compare/v2.3.0...v2.4.0">compare view</a></li> </ul> </details> <br />

Dependabot compatibility score

Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


<details> <summary>Dependabot commands and options</summary> <br />

You can trigger Dependabot actions by commenting on this PR:

  • @dependabot rebase will rebase this PR
  • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
  • @dependabot merge will merge this PR after your CI passes on it
  • @dependabot squash and merge will squash and merge this PR after your CI passes on it
  • @dependabot cancel merge will cancel a previously requested merge and block automerging
  • @dependabot reopen will reopen this PR if it is closed
  • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
  • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
  • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
  • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
  • @dependabot use these labels will set the current labels as the default for future PRs for this repo and language
  • @dependabot use these reviewers will set the current reviewers as the default for future PRs for this repo and language
  • @dependabot use these assignees will set the current assignees as the default for future PRs for this repo and language
  • @dependabot use this milestone will set the current milestone as the default for future PRs for this repo and language
  • @dependabot badge me will comment on this PR with code to add a "Dependabot enabled" badge to your readme

Additionally, you can set the following in your Dependabot dashboard:

  • Update frequency (including time of day and day of week)
  • Pull request limits (per update run and/or open at any time)
  • Out-of-range updates (receive only lockfile updates, if desired)
  • Security updates (receive only security updates, if desired)

</details>

+2 -1

0 comment

2 changed files

pr created time in 2 days

create barnchsquare/sharkey

branch : dependabot/go_modules/gopkg.in/yaml.v2-2.4.0

created branch time in 2 days

fork dtayme/LumiSoft.Net

LumiSoft.Net clone repo with mainly mono (and other minor issues) bug fixes. (Original project's url: http://www.lumisoft.ee)

fork in 3 days

startedTheLartians/ModernCppStarter

started time in 8 days

fork ksbomj/sedutil

DTA sedutil Self encrypting drive software

fork in 8 days

startedthedeveloperworldisyours/RoundedConersWithGlide

started time in 9 days

startedopenai/gym

started time in 13 days

startedfilip26/titanium-json-ld

started time in 16 days

startedharoldadmin/opengraphKt

started time in 16 days

push eventsquare/sharkey

Roy Xu

commit sha faca023aa6984ded78c3526d40727692beaeb413

add middleware to record http endpoint metrics (#123)

view details

push time in 17 days

delete branch square/sharkey

delete branch : roy/add-endpoint-metrics

delete time in 17 days

PR merged square/sharkey

Reviewers
add middleware to record http endpoint metrics

record successes, client/server errors, latencies, and total number of requests for each Sharkey endpoint

As an example, these would be the metrics for the `/enroll/{hostname}' endpoint:

sharkey.enroll_host.200: successes

sharkey.enroll_host.400: client errors

sharkey.enroll_host.500: server errors

sharkey.enroll_host.latency: latency

sharkey.enroll_host.count: total requests

+88 -1

0 comment

4 changed files

captiosus

pr closed time in 17 days

startedMrXlebNick/shot-fragmentscenario

started time in 19 days

startedpruiz/WkHtmlToXSharp

started time in 19 days

fork unitycoder/WkHtmlToXSharp

C# wrapper wrapper (using P/Invoke) for the excelent Html to PDF conversion library wkhtmltopdf library.

fork in 20 days

startedpruiz/WkHtmlToXSharp

started time in 20 days

startedpruiz/WkHtmlToXSharp

started time in 21 days

starteddomino-clj/domino

started time in 21 days

push eventsquare/sharkey

Roy Xu

commit sha 8771043e539eaab4fb64460ce030cff0a8ed033f

add middleware to record http endpoint metrics

view details

push time in 21 days

push eventsquare/sharkey

Roy Xu

commit sha 887d69276d6865636d4c069cadfa192ad1bb207a

add middleware to record http endpoint metrics

view details

push time in 21 days

Pull request review commentsquare/sharkey

add middleware to record http endpoint metrics

+package telemetry++import (+	"net/http"+	"strings"+	"time"++	"github.com/felixge/httpsnoop"

oh good point

captiosus

comment created time in 21 days

Pull request review commentsquare/sharkey

add middleware to record http endpoint metrics

+package telemetry++import (+	"net/http"+	"strings"+	"time"++	"github.com/felixge/httpsnoop"+	"github.com/gorilla/mux"+	"github.com/sirupsen/logrus"+)++type MetricsMiddleware struct {+	telemetry *Telemetry+}++func NewMetricsMiddleware(t *Telemetry) *MetricsMiddleware {+	return &MetricsMiddleware{t}+}++func (m *MetricsMiddleware) InstrumentHTTPEndpointStats(h http.Handler) http.Handler {+	return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {+		start := time.Now()+		logger, w := makeMetricsResponseLogger(w)++		route := mux.CurrentRoute(r)+		path, err := route.GetPathTemplate()+		if err != nil {+			logrus.Warn("unable to retrieve path from route for metrics")+		}++		endpoint := m.ParseRoute(path)

nit: does this have to be an exported method?

captiosus

comment created time in 22 days

Pull request review commentsquare/sharkey

add middleware to record http endpoint metrics

+package telemetry++import (+	"net/http"+	"strings"+	"time"++	"github.com/felixge/httpsnoop"+	"github.com/gorilla/mux"+	"github.com/sirupsen/logrus"+)++type MetricsMiddleware struct {+	telemetry *Telemetry+}++func NewMetricsMiddleware(t *Telemetry) *MetricsMiddleware {+	return &MetricsMiddleware{t}+}++func (m *MetricsMiddleware) InstrumentHTTPEndpointStats(h http.Handler) http.Handler {+	return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {+		start := time.Now()+		logger, w := makeMetricsResponseLogger(w)++		route := mux.CurrentRoute(r)+		path, err := route.GetPathTemplate()+		if err != nil {+			logrus.Warn("unable to retrieve path from route for metrics")+		}++		endpoint := m.ParseRoute(path)++		h.ServeHTTP(w, r)++		if endpoint != "" {+			m.telemetry.Metrics.IncrCounter([]string{endpoint, Count}, 1)+			m.telemetry.Metrics.SetGauge([]string{endpoint, Latency}, float32(time.Since(start).Milliseconds()))+			if logger.Status() >= 500 {+				m.telemetry.Metrics.IncrCounter([]string{endpoint, "500"}, 1)+			} else if logger.Status() >= 400 {+				m.telemetry.Metrics.IncrCounter([]string{endpoint, "400"}, 1)+			} else if logger.Status() >= 200 && logger.status < 300 {+				m.telemetry.Metrics.IncrCounter([]string{endpoint, "200"}, 1)+			}+		}+	})+}++func (m *MetricsMiddleware) ParseRoute(routeName string) string {+	switch routeName {+	case "/enroll/{hostname}":+		return "enroll_host"+	default:+		return strings.Trim(routeName, "/")

should we maybe replace / (apart from the leading/trailing ones) with _?

captiosus

comment created time in 22 days

Pull request review commentsquare/sharkey

add middleware to record http endpoint metrics

+package telemetry++import (+	"net/http"+	"strings"+	"time"++	"github.com/felixge/httpsnoop"+	"github.com/gorilla/mux"+	"github.com/sirupsen/logrus"+)++type MetricsMiddleware struct {+	telemetry *Telemetry+}++func NewMetricsMiddleware(t *Telemetry) *MetricsMiddleware {+	return &MetricsMiddleware{t}+}++func (m *MetricsMiddleware) InstrumentHTTPEndpointStats(h http.Handler) http.Handler {+	return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {+		start := time.Now()+		logger, w := makeMetricsResponseLogger(w)++		route := mux.CurrentRoute(r)+		path, err := route.GetPathTemplate()+		if err != nil {+			logrus.Warn("unable to retrieve path from route for metrics")+		}++		endpoint := m.ParseRoute(path)++		h.ServeHTTP(w, r)++		if endpoint != "" {+			m.telemetry.Metrics.IncrCounter([]string{endpoint, Count}, 1)+			m.telemetry.Metrics.SetGauge([]string{endpoint, Latency}, float32(time.Since(start).Milliseconds()))+			if logger.Status() >= 500 {+				m.telemetry.Metrics.IncrCounter([]string{endpoint, "500"}, 1)+			} else if logger.Status() >= 400 {+				m.telemetry.Metrics.IncrCounter([]string{endpoint, "400"}, 1)+			} else if logger.Status() >= 200 && logger.status < 300 {+				m.telemetry.Metrics.IncrCounter([]string{endpoint, "200"}, 1)+			}+		}+	})+}++func (m *MetricsMiddleware) ParseRoute(routeName string) string {+	switch routeName {+	case "/enroll/{hostname}":+		return "enroll_host"+	default:+		return strings.Trim(routeName, "/")+	}+}++type metricsResponseLogger struct {+	w      http.ResponseWriter+	status int+}++func (l *metricsResponseLogger) WriteHeader(code int) {+	l.status = code+}++func (l *metricsResponseLogger) Status() int {+	return l.status+}++func makeMetricsResponseLogger(w http.ResponseWriter) (*metricsResponseLogger, http.ResponseWriter) {+	logger := &metricsResponseLogger{w: w, status: http.StatusOK}

This was a little bit unclear to me, but you init the metricsResponseLogger with 200 and then within ServeHTTP WriteHeader is called, which will ultimately set the status code that will later be used in the metrics setting? Some comments around this could be helpful.

captiosus

comment created time in 22 days

Pull request review commentsquare/sharkey

add middleware to record http endpoint metrics

+package telemetry++import (+	"net/http"+	"strings"+	"time"++	"github.com/felixge/httpsnoop"

is felixge/httpsnoop already in go.mod?

captiosus

comment created time in 22 days

startedianholing/avatart_app

started time in 23 days

PR closed evicertia/smppsim-docker

Docker image to run SMPPSim:

Change permissions in sh files

+325 -0

0 comment

7 changed files

mmunozl

pr closed time in 24 days

more