avsm changed the topic of #mirage to: mirage 2 released! party on!
nullcat has joined #mirage
nullcat has quit [Client Quit]
rgrinberg has joined #mirage
mort___ has quit [Quit: Leaving.]
rgrinberg has quit [Remote host closed the connection]
mort___ has joined #mirage
mort___ has quit [Quit: Leaving.]
copy` has quit [Quit: Connection closed for inactivity]
mort___ has joined #mirage
mort___ has quit [Client Quit]
tg has quit [Quit: Leaving]
tg has joined #mirage
jermar has joined #mirage
tg has quit [Quit: Leaving]
tg has joined #mirage
mort___ has joined #mirage
mort___ has quit [Quit: Leaving.]
copy` has joined #mirage
mort___ has joined #mirage
mort___ has quit [Quit: Leaving.]
<hannes>
lobo: thx! I'll likely do some more cleanups if you don't mind ;)
mort___ has joined #mirage
<lobo>
hannes: thanks for cleaning up the code. sure, go ahead. after that we can have a 0.0.2 release :D
<hannes>
lobo: I'll tell you once I think we should have a 0.0.2...
<hannes>
lobo: I kept myself busy to develop a logs-syslog reporter... for unix, lwt, mirage... udp/tcp/tls...
<lobo>
hannes: i also started working on topkg yesterday, but luckily haven't pushed the changes. it was good way to learn by comparing your changes to mine
<hannes>
lobo: since you use syslog at work, do you know how on a tcp transport messages are terminated? 0 byte? newline? (I've seen both, but no docs)
<lobo>
hannes: unfortunately i only use udp based syslog at work, but i can run a few tests tomorrow with tcp
<hannes>
lobo: topkg is really neat, esp if you combine it with opam-publish etc... no longer need to push any buttons for releases, just topkg bistro :D
<hannes>
ah cool... do you have a variety of tls-syslog servers ready as well? (I haven't done any interop testing for my tls-syslog stuff...)
<lobo>
hannes: only rsyslog. the majority of the logging is done via logstash, which only supports udp
<hannes>
ic. no worries
<hannes>
I'll figure how to install packages at some point and then do some interop testing
<hannes>
uh, reliable syslog (which seems to specify syslog over tcp) is defined in rfc3195 with some pseudo-xml-markup...
<hannes>
oh nice, found the right rfc for my implementation ;)
rgrinberg has quit [Remote host closed the connection]
IRConan has joined #mirage
<hannes>
Drup: there's in Functoria_runtime a Functoria_info.info... which is a type, but how do I get the value of the type of the current running application?
noddy has quit [Ping timeout: 256 seconds]
noddy has joined #mirage
<Drup>
hannes: Mirage.app_info
<Drup>
(or Functoria_app.app_info, it's the same)
<Drup>
hannes: Can I assume you volunteer to make the proposed modifications ? :D
<hannes>
Drup: hmm, I don't understand how to use that
<hannes>
Drup: isn't it a runtime value, the info?
<Drup>
Functoria_app.app_info will create a module that contains the value
<hannes>
Drup: could you guide stupid me how to extract it then? in utop, I get a `val f : Functoria_app.info Functoria.impl = <abstr>`...
<hannes>
Drup: (functoria things) I put it on my todo list, but they do not have the highest priority right now... I put it on GitHub thus others might just fix it
<hannes>
Drup: ah, nvm -- there's the app_info example in mirage-skeleton
<hannes>
hmm, no... hannes is too stupid for this
<hannes>
ic, via `~deps:[abstract app_info]`...
<Drup>
hannes: what's the issue ?
<hannes>
Drup: I'd like to get the application name in a library used by mirage (which is not a unikernel in itself)... failing to do so, is there maybe a way to extract the application name somewhere in the mirage tool (haven't tried, not there yet)..
<Drup>
what different does it makes if it's a unikernel or not ?
<Drup>
ah, I see, in a library
<Drup>
make it a functor ? :/
<hannes>
in a unikernel I put ~deps:[abstract app_info] in config.ml, and get an info passed to start
<hannes>
in a library... well yeah... make it a functor
<Drup>
well, you are going to create a device for it, so that kind of dependency would go in the device
<hannes>
yeah..
<Drup>
and if you make it a dependency, it'll be passed to the connect
<hannes>
true... maybe..
<hannes>
I'll look into this soon..
<Drup>
(you don't really need a functor, but you do need to specify the device dependency one way or another)
<hannes>
5424 (the new syslog syntax) might actually be useful at some stage (maybe tomorrow ;)
<hannes>
also, mirage tool integration so that the users don't have to fiddle around should somehow be done by someone at some point (nevertheless, there is configuration needed from the user, such as remote ip and protocol)
mort___ has joined #mirage
<lobo>
hannes: nice. i'll give it a try tomorrow. just had a short glimpse through the code. in the slevel function, I would map Logs.App to Syslog_message.Informational, since I guess App is just for output you would like to see on stdout normally?
<hannes>
lobo: and error than to critical?
<lobo>
hannes: since logs has fewer levels and you can't have a 1:1 mapping, i would just skip critical. in the end it is up to the collector on how the severity levels are handled
<hannes>
lobo: done, thx
<lobo>
hannes: haven't read 5424 in its entirety, but maybe it would be a good use case for testing angstrom
<hannes>
lobo: for parsing likely... since I'm mainly in generating messages, my job is much easier ;)
<lobo>
indeed :D i remeber skipping the rfc last time, when i read that unicode is supported now
<hannes>
i think unicode is great!
<hannes>
and we have proper unicode libraries in OCaml! :)
<hannes>
I currently use Facility.System_Daemons by default, but would really like to map the log source to an appropriate facility.. still not sure how to do that
<hannes>
with 5424 we could encode tags, and provide more structured metadata, which is a good thing once you think about the consumer of log message
<lobo>
indeed, that would be nice. most applications i've seen just use a custom format for the message part. which means you need to convert it via regexes into structured data on the collector to do something useful with it :-)
<hannes>
that does not sound like the way I want to go
<lobo>
right. also the timestamp field of the old format is not very sufficient. it doesn't carry the year or any timezone information for example
<hannes>
yes
<hannes>
and certainly for parsing, angstrom would be nice... hand written parsers are usually brittle..
<hannes>
maybe with 5424 facility doesn't matter, and a structured id can be used (with the log source name), and a potential UI could depend and filter on that..
<hannes>
(so, my plan is as well to have a collector, and some terminal-based UI for syslog)